WO2020082929A1 - 一种数据处理方法及分布式存储系统 - Google Patents

一种数据处理方法及分布式存储系统 Download PDF

Info

Publication number
WO2020082929A1
WO2020082929A1 PCT/CN2019/105703 CN2019105703W WO2020082929A1 WO 2020082929 A1 WO2020082929 A1 WO 2020082929A1 CN 2019105703 W CN2019105703 W CN 2019105703W WO 2020082929 A1 WO2020082929 A1 WO 2020082929A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage disk
storage
sub
disk group
Prior art date
Application number
PCT/CN2019/105703
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to EP19876171.0A priority Critical patent/EP3859538A4/en
Publication of WO2020082929A1 publication Critical patent/WO2020082929A1/zh
Priority to US17/238,709 priority patent/US11662925B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to the field of storage technology, in particular to a data processing method and a distributed storage system.
  • hot data also called active / temporary data
  • warm data also called low-frequency access stored data / inactive data
  • Cold data also called backup / archive data
  • hot data refers to data that can be accessed at any time, with access delay requirements of milliseconds (ms)
  • warm data refers to data with low access frequency (for example, an average of one visit per month) and access delay requirements of milliseconds
  • Cold data refers to data with a very low frequency of access (for example, an average of one visit per year) and a latency of minutes.
  • the storage disk for storing temperature data is basically in a readable state. Since the access frequency of the temperature data is low, the input / output (IO) function of the storage disk storing the temperature data is idle most of the time, resulting in a large power consumption of the storage disk.
  • the time delay of temperature data is required to be in the order of milliseconds. Therefore, the storage disk that stores temperature data cannot be powered off or put into a sleep state. If the storage disk is powered off or put into the sleep state, when the temperature data needs to be read, the storage disk must be powered on or awakened first. The process of powering on or awakening often takes 30 to 50 seconds, which cannot meet the time delay requirements of warm data storage.
  • the present application provides a data processing method and a distributed storage system, which can solve the problem that the low power consumption of the storage disk and the time delay requirements of the data cannot be satisfied at the same time.
  • a data processing method is provided.
  • the data processing method is applied to a distributed storage system including at least one processing node and at least two storage nodes, and the storage disks of the at least two storage nodes include at least two storage disk groups, At least two storage disk groups are configured with at least two energy-saving states, and a processing module is deployed on at least one processing node.
  • the data processing method includes: after receiving the read request including the identifier of the data to be processed, the processing module reads metadata of the data to be processed according to the identifier of the data to be processed to determine the first storage disk group and the first Two storage disk groups, the first storage disk group is configured with a first energy-saving state, and the second storage disk group is configured with a second energy-saving state.
  • the wake-up delay of the first energy-saving state is less than the wake-up delay of the second energy-saving state.
  • the module reads the first sub-data of the data to be processed from the first storage disk group, and after reading the first sub-data, reads the second sub-data of the data to be processed from the second storage disk group.
  • the power consumption of the storage disks in the energy-saving state is low. Therefore, the method of storing different sub-data of the data to be processed in the storage disk groups of different energy-saving states effectively reduces the power consumption of the storage disks.
  • each sub-data is read sequentially according to the access order. Since the wake-up delays of storage disks in different energy-saving states are different, the storage disk group in which the sub-data is stored can be determined according to the access sequence and the wake-up delay from short to long, so that when a certain sub-data needs to be read The wake-up delay of the storage disk that stores the sub-data is basically over, effectively ensuring the delay of each sub-data.
  • At least two storage disk groups are configured with at least two energy-saving states may refer to any two storage disk groups configured with different energy-saving states, or may refer to a portion of at least two storage disk groups configured to save energy The state is the same, and the energy-saving state of other storage disk configurations is different from the energy-saving state of this part of the storage disk.
  • the processing module before reading the first sub-data from the first storage disk group, the processing module further determines the data in the first storage disk group according to the metadata of the data to be processed The first storage disk group and the second storage disk group in the second storage disk group; wherein, the storage disks included in the first storage disk group are storage disks storing the first sub-data in the first storage disk group, and the second storage The storage disks included in the disk group are storage disks in the second storage disk group that store the second sub-data.
  • the above-mentioned "processing module reads the first sub-data from the first storage disk group” method is: the processing module reads the first sub-data from the first storage disk group.
  • the above-mentioned "processing module reads the second sub-data from the second storage disk group” method is: the processing module reads the second sub-data from the second storage disk group.
  • the storage disk group includes a plurality of storage disks, part of the storage disks in the first storage disk group (such as the storage disks included in the first storage disk group) are used to store the first sub-data, and part of the storage disks in the second storage disk group ( For example, the storage disks included in the second storage disk group are used to store the second sub-data.
  • the processing module after determining the first storage disk group in the first storage disk group and the second storage disk group in the second storage disk group, the processing module further determines The storage disks in the first storage disk group and the storage disks in the second storage disk group have been woken up.
  • the storage disk has been woken up may mean that the storage disk is in a readable state, or may mean that the storage disk is in the process of transitioning from the energy-saving state to the readable state.
  • the processing module can read the first sub-data from the first storage disk group only when the storage disks in the first storage disk group are in a readable state. Therefore, before reading the first sub-data, the processing module needs to It is determined that the storage disks in the first storage disk group have been woken up.
  • the processing module can read the second sub-data from the second storage disk group. Therefore, before reading the second sub-data, the processing module needs to It is determined that the storage disks in the second storage disk group have been woken up.
  • the processing module after reading the first sub-data from the first storage disk group, the processing module also sets the storage disk in the first storage disk group as the first energy-saving state. Furthermore, after reading the second sub-data from the second storage disk group, the processing module also sets the storage disk in the second storage disk group to the second energy-saving state.
  • the processing module When the processing module reads the first sub-data, the storage disks in the first storage disk group are in a readable state. After reading the first sub-data, the processing module sets the storage disks in the first storage disk group as the first The energy-saving state effectively reduces the power consumption of the storage disks in the first storage disk group. Similarly, when the processing module reads the second sub-data, the storage disks in the second storage disk group are readable. After reading the second sub-data, the processing module sets the storage disks in the second storage disk group In the second energy-saving state, the power consumption of the storage disks in the second storage disk group is effectively reduced.
  • the processing module before receiving the read request including the identifier of the data to be processed, may also receive a write request including the data to be processed, and cut the data to be processed Divided into first sub-data and second sub-data, and storing the first sub-data in the first storage disk group, and storing the second sub-data in the second storage disk group, here, the access of the first sub-data The order is before the access order of the second sub-data.
  • the processing module determines the storage disk stored in each sub-data according to the access sequence and the wake-up delay of the storage disk group.
  • the sub-data with the first access sequence is stored in the storage disk group with a short wake-up delay; the sub-data with the access sequence is stored in the storage disk group with a relatively long wake-up delay. In this way, when a certain sub-data of the data to be processed is subsequently read, the wake-up delay of the storage disk storing the sub-data basically ends.
  • the above-mentioned "processing module divides the data to be processed into first sub-data” method is: the processing module according to the wake-up delay of the first energy-saving state, the first The wake-up delay and access bandwidth of the second energy-saving state, calculate the size of the first sub-data, and determine the first sub-data, the wake-up delay of the first energy-saving state and the wake-up delay of the second energy-saving state are preset; processing The module calculates the size of the second sub-data according to the size of the data to be processed and the size of the first sub-data, and determines the second sub-data.
  • the above-mentioned “processing module stores the first sub-data in the first storage disk group and stores the second sub-data in the second storage disk group” The method is as follows: the processing module stores the first sub-data in the first storage disk group, and stores the second sub-data in the second storage disk group. In addition, when the remaining storage space of the storage disks in the first storage disk group is zero, the processing module sets the storage disks of the first storage disk group to the first energy-saving state. When the remaining storage space of the storage disk in the second storage disk group is zero, the processing module sets the storage disk of the second storage disk group to the second energy-saving state.
  • the processing module may use erasure coding (EC) stripe storage mode / multiple copy storage mode to write the sub-data into the storage disk group.
  • EC erasure coding
  • a distributed storage system in a second aspect, includes at least one processing node and at least two storage nodes.
  • the storage disks of the at least two storage nodes include at least two storage disk groups, and at least two storage disk groups At least two energy-saving states are configured, and a processing module is deployed on at least one processing node, and the processing module is configured to execute the data processing method described in the first aspect and any one of any possible implementation manners thereof.
  • a distributed storage system in a third aspect, includes at least two storage nodes, and the storage disks of the at least two storage nodes include at least two storage disk groups, where the first storage disk group is in the first position. In the energy-saving state, the second storage disk group is in the second energy-saving state, and the wake-up delay of the first energy-saving state is less than the wake-up delay of the second energy-saving state.
  • the at least two storage disk groups are used to store data to be processed, and the data to be processed includes first sub data and second sub data; the first storage disk group stores the first sub data, and the second storage disk group stores the second sub data data.
  • the foregoing distributed storage system further includes at least one processing node.
  • the at least one processing node stores metadata of the data to be processed, and the metadata of the data to be processed records the first The correspondence between a storage disk group and the first sub-data, and the correspondence between the second storage disk group and the second sub-data.
  • a distributed storage system includes at least one processing node, and the at least one processing node includes at least one processor and at least one memory. At least one memory for storing computer instructions, and when the at least one processor calls the computer instructions, execute the data processing method described in any one of the first aspect and any one of its possible implementation manners.
  • the at least one processor and the at least one memory are deployed on the same processing node.
  • At least one processing node in the present application includes a first processor and a second processor, and the first processor and the second processor may be located in the same processing node It can also be deployed in different processing nodes separately.
  • the first processor is configured to receive a read request that includes the identifier of the data to be processed.
  • the second processor is used to read the first sub-data from the first storage disk group in response to the read request received by the first processor, and read from the second storage disk group after reading the first sub-data The second sub-data.
  • a computer-readable storage medium which stores instructions, which when executed on a computer, causes the first aspect and any one of its possible implementations The data processing method described is executed.
  • a computer program product containing instructions.
  • the computer program product includes computer instructions.
  • the computer instructions run on a computer, the computer program product makes the first aspect and any one of the possible implementation manners described above The data processing method is executed.
  • FIG. 1 is a schematic structural diagram 1 of a distributed storage system in an embodiment of the present application
  • FIG. 2A is a schematic structural diagram 1 of a processing node in an embodiment of this application.
  • 2B is a second schematic structural diagram of a processing node in an embodiment of the present application.
  • 2C is a schematic structural diagram 3 of a processing node in an embodiment of the present application.
  • FIG. 3 is a second structural diagram of a distributed storage system in an embodiment of the present application.
  • FIG. 4 is a schematic structural diagram 3 of a distributed storage system in an embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of a storage disk group in an embodiment of this application.
  • FIG. 6 is a schematic structural diagram 1 of a storage node in an embodiment of the present application.
  • FIG. 7 is a second schematic structural diagram of a storage node in an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a data processing method in an embodiment of this application.
  • FIG. 9 is a schematic diagram of storage of sub-data in an embodiment of the present application.
  • the storage disk refers to the storage medium of the storage node.
  • the storage node may refer to the following descriptions of FIG. 1, FIG. 6, and FIG. 7.
  • the storage disk in this application may be a serial advanced technology attachment (SATA) hard disk, a serial attached SCSI (serial attached SCSI (SAS)) hard disk, a mobile hard disk, or a universal serial bus (universal serial) bus, USB, hard disk, etc., may also be a hard disk (HDD), a solid state drive (SSD), or other storage media, which is not specifically limited in this application.
  • SATA serial advanced technology attachment
  • SAS serial attached SCSI
  • mobile hard disk or a universal serial bus (universal serial) bus, USB, hard disk, etc.
  • HDD hard disk
  • SSD solid state drive
  • the storage disk can be in a readable state and an energy-saving state.
  • the power consumption of the storage disk in the energy-saving state is less than the power consumption of the storage disk in the readable state.
  • the storage disk in the readable state supports immediate reading, that is to say, the wake-up delay of the storage disk is very low, close to no wake-up delay. If a storage disk is always in a readable state, the power consumption of the storage disk is 5.4 watts. In this embodiment of the present application, the storage disk in this state is referred to as an idle state 0 (Idle_0) storage disk.
  • each energy-saving state corresponds to a type of storage disk power consumption and wake-up delay, where the wake-up delay is the time delay for the storage disk to switch from the energy-saving state to the readable state.
  • the power consumption of storage disks corresponding to different energy-saving states is different.
  • the wake-up delays corresponding to different energy-saving states are also different.
  • Table 1 shows the power consumption and wake-up delay of a storage disk of a certain type in different energy-saving states.
  • the data in the cloud storage system includes hot data, warm data, and cold data.
  • Hot data can be accessed at any time, and the access delay is required to be in the order of milliseconds. Therefore, the storage disk that stores the hot data is basically in a readable state.
  • the access frequency of cold data is very low (for example, the average access is once a year), and the latency requirement is minutes. Therefore, the storage disk that stores cold data can be powered off or put to sleep to reduce the power consumption of the storage disk; Subsequently, when cold data needs to be read, the storage disk is powered on or placed in a readable state.
  • the access frequency of temperature data is relatively low (for example, access once a month on average), and the delay requirement is in the order of milliseconds.
  • the data involved in this application may be an object, a block, or a file, which is not specifically limited in this application.
  • the storage disk for storing temperature data is basically in a readable state. Since the access frequency of temperature data is low, the IO function of the storage disk that stores the temperature data is idle most of the time. That is to say, the storage disk that stores the temperature data is idling most of the time. Consume more.
  • the time delay of temperature data is required to be in the order of milliseconds. Therefore, the storage disk that stores temperature data cannot be powered off or put into a sleep state. If the storage disk is powered off or put into the sleep state, when the temperature data needs to be read, the storage disk must be powered on or awakened first. The process of powering on or awakening often takes 30 to 50 seconds, which cannot meet the time delay requirements of warm data storage. In other words, there is currently no way to meet the time delay requirements of temperature data and reduce the power consumption of the storage disk.
  • the present application provides a data processing method and a distributed storage system.
  • the storage disk of the distributed storage system includes at least two storage disk groups, and at least two storage disk groups are configured with at least two energy-saving states, and different sub-data of a certain data is stored in different energy-saving of the distributed storage system In the state of the storage disk group. Since the power consumption of the storage disks in the energy-saving state is low, the method of storing different sub-data of the data in the storage disk groups of different energy-saving states effectively reduces the power consumption of the storage disks. When the above data needs to be read, each sub-data is read sequentially according to the access order.
  • the storage disk group in which the sub-data is stored can be determined according to the access sequence and the wake-up delay from short to long, so that when a certain sub-data needs to be read
  • the wake-up delay of the storage disk that stores the sub-data is basically over, effectively ensuring the delay of each sub-data.
  • the wake-up delay of the storage disk group storing the sub-data is shorter; on the contrary, if the access order of a certain sub-data is later, The longer the wake-up delay of the storage disk group storing the sub-data.
  • you can wake up all the storage disks that store the sub-data of the data so that for a certain sub-data, when you need to read the sub-data, the wake-up of the storage disk that stores the sub-data
  • the delay is basically over, which can not only meet the data delay requirements, but also reduce the power consumption of the storage disk.
  • the distributed storage system includes at least two storage disk groups, the first sub-data of the data to be processed is stored in the first storage disk group, and the second sub-data of the data to be processed is stored in the second The storage disk group, the first storage disk group and the second storage disk group have different energy-saving states.
  • the first sub-data is read from the first storage disk group
  • the second sub-data is read from the second storage disk group.
  • FIG. 1 is a schematic structural diagram of the distributed storage system.
  • the distributed storage system may include at least one processing node 10 and at least two storage nodes 11, and the processing node 10 may communicate with each storage node 11. If the distributed storage system includes multiple processing nodes 10, different processing nodes 10 can also communicate. It can be understood that the distributed storage system shown in FIG. 1 is only an example. In practical applications, multiple storage nodes 11 may also directly communicate or communicate through other devices. This embodiment of the present application does not Be limited.
  • the processing node 10 is a device that provides IO processing capability in a distributed storage system.
  • the processing node 10 can be used to divide the data to be written into multiple sub-data according to the write request, and store each sub-data in the corresponding storage disk, or can be used to read sequentially after receiving the read request For each sub-data, after storing the sub-data in the storage disk, the corresponding relationship between the sub-data and the storage disk can be saved, that is, the metadata of the sub-data can be saved, and at least two storage nodes can be monitored / managed 11 The status of the storage disk.
  • the processing node 10 includes: a communication interface 101, a processor 102, a memory 103, and a non-volatile memory 104, where the communication interface 101, the processor 102, and the memory 103 The non-volatile memory 104 is connected via a system bus 105.
  • the communication interface 101 is used to communicate with other devices (such as the storage node 11).
  • the processor 102 is used to complete the function of the processing node 10.
  • the processor 102 may be any computing device, and may be a general-purpose central processing unit (CPU), a microprocessor, a programmable controller, an application-specific integrated circuit (ASIC), or one or A plurality of integrated circuits for controlling the execution of the program procedures of this application.
  • the processor 102 is the control center of the processing node 10.
  • the processor 102 may include one or more CPUs.
  • the processor in FIG. 2A includes CPU 0 and CPU 1.
  • the processor 102 may further include a cache (not shown in FIG. 2A), which may be embodied by a cache memory cache, which is used to store various program instructions.
  • a cache (not shown in FIG. 2A), which may be embodied by a cache memory cache, which is used to store various program instructions.
  • the memory 103 is used to buffer data received from peripheral devices or data read from the non-volatile memory 104.
  • the memory 103 may be a non-transitory machine-readable medium that can store data, such as read-only memory (ROM) or flash memory (Flash), which is not limited herein.
  • the cache and the memory 103 in the processor 102 may be integrated or independently set, which is not limited in this embodiment of the present application.
  • the non-volatile memory 104 may be used to store software programs and application modules, such as a system program of the processing node 10, an application module that divides data to be written, etc.
  • the processor 102 executes processing by running the software program / application module Various functional applications and data processing of the node 10.
  • the non-volatile memory 104 may be read-only memory (ROM), static random access memory (static RAM, SRAM), flash memory (flash memory), HDD, SSD, disk storage medium, or other magnetic storage devices , Or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by the network device, but is not limited thereto.
  • the processing node provided in this embodiment of the present application may further include at least two storage disks for storing data.
  • At least two storage disks here can be directly connected to other components in the processing node through the system bus ( Figure 2B shows the processing node of this structure), or can be through an adapter card (the adapter card is connected to other components through the system bus (Connection)
  • a storage disk included in a storage device connected to other components in the processing node FIG. 2C shows the processing node of this structure).
  • the processing node shown in FIG. 2B may exist in the form of a server, and the processing node shown in FIG. 2C may exist in the form of a server to which a storage device is connected. Since the processing nodes shown in FIGS. 2B and 2C each include at least two storage disks, the processing nodes shown in FIGS. 2B and 2C can both belong to special storage nodes. In practical applications, the storage device shown in FIG. 2C further includes a storage controller for managing the at least two storage disks, which is not shown in FIG. 2C.
  • a processing module 20 is deployed on at least one processing node 10 in the embodiment of the present application.
  • the processing module 20 may be a software module, such as a process / thread.
  • the processing module 20 can complete the function of the processing node 10, that is, the processing module 20 can be used to receive a read request and read corresponding data from at least two storage nodes 11 in response to the read request, and can also be used to receive a write request , And in response to the write request, the data to be written is divided into multiple sub-data, and each sub-data is stored in the corresponding storage disk, after the sub-data is stored, the correspondence between the sub-data and the storage disk can also be stored The relationship, that is, the metadata for storing the sub-data, can also monitor / manage the status of the storage disks of at least two storage nodes 11.
  • the processing module 20 is configured to receive a write request including data to be processed, and divide the data to be processed into first sub-data and second sub-data, and store the first sub-data in at least two storage nodes 11 Of the first storage disk group, the second sub-data is stored in the second storage disk group of at least two storage nodes 11, the first storage disk group and the second storage disk group are configured with different energy-saving states, the storage disk group You can refer to the subsequent description.
  • the processing module 20 is further configured to receive a read request including the identification of the data to be processed, and read the metadata of the data to be processed according to the identification of the data to be processed to determine the first storage disk group and the second storage disk group, and The first sub-data is read from the first storage disk group, and after the first sub-data is read, the second sub data is read from the second storage disk group.
  • the processing module 20 also stores the correspondence between the storage disks in the first storage disk group and the first sub-data, and the correspondence between the storage disks in the second storage disk group and the second sub-data.
  • Part or all of the processing module 20 may be stored in the form of a computer program in the non-volatile memory of a certain processing node 10 (or in the memory 103 of a certain processing node 10).
  • FIG. 2A shows a structure in which the processing module 20 is stored in the non-volatile memory 104 of a processing node 10 in the form of a computer program.
  • the processing module 20 may include a business module 201 and a management module 202.
  • the business module 201 communicates with the management module 202 and the storage node 11 to receive a read request and read corresponding data from at least two storage nodes 11 in response to the read request. It can also be used to receive a write request and respond to The write request divides the data to be written into multiple sub-data, and stores each sub-data in at least two storage nodes 11.
  • the service module 201 can also store the correspondence between the sub-data and the storage disk group.
  • the management module 202 is used to monitor / manage the storage disk groups of at least two storage nodes 11 and also manage each storage disk.
  • both the service module 201 and the management module 202 belong to the sub-modules of the processing module 20.
  • Both the service module 201 and the management module 202 may be software modules, such as processes / threads.
  • the service module 201 may be implemented by a processing node 10 of at least two processing nodes 10, or may be a functional module of a processing node 10 of at least two processing nodes 10, or may be distributed ⁇ ⁇ ⁇ Multiple processing nodes 10.
  • the management module 202 may be implemented by a processing node 10 of at least two processing nodes 10, or may be a functional module of a processing node 10 of at least two processing nodes 10, or may be distributed Set in multiple processing nodes 10.
  • the service module 201 and the management module 202 may be located on the same processing node 10 (the schematic diagram of which is shown in FIG. 3), or may be located on different processing nodes 10 (the schematic diagram of which is shown in FIG. 4).
  • 3 and 4 show the structure of the processing node 10 from the perspective of software.
  • FIG. 3 and FIG. 4 are schematic diagrams of the distribution structure of the business module 201 and the management module 202, not the distribution structure of the business module 201 and the management module 202. Limit.
  • the service module 201 and the management module 202 can be stored in the non-volatile memory 104 (or the memory 103) of the corresponding processing node 10 in the form of a computer program.
  • the processing module can also be divided into other functional modules according to the actual functions of the processing module 20, such as a metadata module.
  • the metadata module is used to store the correspondence between sub-data and storage disk groups. The application examples do not specifically limit this.
  • the storage node 11 in FIG. 1 is a device that provides storage space in a distributed storage system.
  • the storage disks of at least two storage nodes 11 form a storage disk pool, and the storage disks in the storage disk pool are divided into at least two storage disk groups according to the wake-up delay, each storage The wake-up delay of the disk group is different.
  • the description of "the storage disks of at least two storage nodes 11 are divided into at least two storage disk groups" is subsequently adopted.
  • the storage disks of at least two storage nodes 11 are divided into at least two storage disk groups according to the energy-saving states that the storage disks can support, wherein at least two storage disk groups are configured with at least two energy-saving states.
  • the number of storage disk groups may be the same as the type of energy-saving state supported by the storage disk, or may be smaller than the type of energy-saving state supported by the storage disk. Any two storage disk groups in at least two storage disk groups may be configured with different energy saving states or may be the same.
  • the storage disk supports four energy-saving states (A state, B state, C state, and Z state), at least two storage nodes 11
  • the storage disks are divided into four storage disk groups, which are: A-state storage disk group, B-state storage disk group, C-state storage disk group, and Z-state storage disk group.
  • the wake-up delay of the storage disks in the A-state storage disk group is 10 milliseconds, and the power consumption is 5.3 watts.
  • the performance of the storage disks in this state is basically the same as that of the idle state 0 storage disk.
  • the wake-up delay of the storage disks in the above-mentioned B-state storage disk group is 1.5 seconds, and the power consumption is 3.4 watts.
  • the power consumption of the storage disks in the B-state storage disk group is reduced by 37%.
  • the wakeup delay of the storage disks in the C-state storage disk group is 4 seconds, and the power consumption is 2.8 watts.
  • the power consumption of the storage disks in the C-state storage disk group is reduced by 48%.
  • the wake-up delay of the storage disks in the Z-state storage disk group is 15 seconds, and the power consumption is 0.7 watts.
  • the power consumption of the storage disks in the Z-state storage disk group is reduced by 87%.
  • the number of storage disk groups into which the storage disks of at least two storage nodes 11 are divided may also be less than 4.
  • the storage disks of at least two storage nodes 11 are divided into three storage disk groups.
  • the three storage disk groups are: A-state storage disk group, B-state storage disk group, and C-state storage disk group.
  • the at least two storage disk groups are arranged in order from shortest to longest wake-up delay. It is easy to understand that, for ease of description, the embodiment of the present application mainly uses at least two storage disk groups in order from shortest to longest wake-up delay as an example for description. In practical applications, at least two storage disk groups may also be arranged in order from longest to shortest wake-up delay, which is not specifically limited in this application.
  • the storage disks of the at least two storage nodes include storage disks of each storage node.
  • the storage disk of the storage node may be a storage disk connected to the system bus of the storage node, or may be a storage disk in a peripheral device connected to the adapter card.
  • the adapter card is connected to the system bus.
  • the storage node 11 may have the function of the processing node 10 described above, so that the storage node 11 and the processing node 11 may be regarded as the same device.
  • the hardware structure of the storage node 11 may refer to FIG. 2B or FIG. 2C described above.
  • the storage node 11 may not have the function of the processing node 10 described above, but only has a function for storing data.
  • FIG. 6 and FIG. 7 below show the hardware structure of the storage node 11 in this scenario.
  • the storage node 11 includes: a communication interface 60, a processor 61 and a storage unit 62, wherein the communication interface 60, the processor 61 and the storage unit 62 are connected through a system bus 63.
  • the communication interface 60 is used to communicate with other devices (such as the processing node 10).
  • the processor 61 is used to implement a data storage process.
  • the processor 61 may be any computing device, and may be a CPU, a microprocessor, a programmable controller, an ASIC, or one or more integrated circuits for controlling the execution of the program programs of the present application.
  • the processor 61 is the control center of the storage node 11.
  • the storage unit 62 may include at least one storage controller, and a plurality of storage disks connected to each storage controller.
  • the storage controller may be an ASIC chip or a field programmable gate array (Field-Programmable Gate Array, FPGA).
  • FPGA Field-Programmable Gate Array
  • the physical form of the storage unit 62 may be SSD or HDD.
  • the storage node 11 shown in FIG. 6 may exist in the form of a server.
  • the storage node 11 includes: a communication interface 70, a processor 71, a memory 72, an adapter card 73, and a storage device 74, wherein the communication interface 70, the processor 71, the memory 72, and the adapter card 73 pass through the system
  • the bus 75 is connected, and the storage device 74 includes multiple storage disks, and the storage device 74 is connected to the adapter card 73.
  • the communication interface 70 is used to communicate with other devices (such as the processing node 10).
  • the processor 71 is used to implement a data storage process.
  • the processor 71 may be any computing device, and may be a CPU, a microprocessor, a programmable controller, an ASIC, or one or more integrated circuits for controlling execution of the program of the present application.
  • the processor 71 is the control center of the storage node 11.
  • the memory 72 may be used to store software programs and application modules, such as system programs of the storage node 11.
  • the processor 71 executes various functional applications of the storage node 11 by running the software program / application module of the group.
  • the communication interface 70, the processor 71, the memory 72, and the adapter card 73 in FIG. 7 may constitute a server, and the storage device 74 may be regarded as a peripheral dedicated to storage connected to the server.
  • the storage device 74 also includes a storage controller, which is not shown in FIG. 7.
  • the storage node 11 shown in FIG. 6 or FIG. 7 includes a storage module that is used to manage writing or reading of data.
  • the storage module can communicate with the above-mentioned business module 201 to implement data writing / reading, and can also communicate with the management module 202 to implement control of the state of the storage disk.
  • the configuration file can be used to record: the number of storage disk groups in the distributed storage system, the wake-up delay of each storage disk group, etc.
  • the storage disks of the distributed storage system include at least two storage disk groups, and at least two storage disk groups are configured with at least two different sub-data of a certain data of energy saving state stored in In different energy-saving storage disk groups.
  • the storage disks of the distributed storage system are pre-configured with at least two storage disk groups, each storage disk group is configured with different energy-saving states, and reads and writes data to be processed.
  • the data to be processed includes first sub-data and The second sub-data is used as an example for description.
  • FIG. 8 is an interactive schematic diagram of a data processing method provided by an embodiment of the present application. The method shown in FIG. 8 may include the following steps:
  • the service module receives a write request including data to be processed.
  • the business module communicates with the management module to obtain information about storage disks in the distributed storage system.
  • the management module is used to monitor / manage the storage disk group of at least two storage nodes, and is also used to manage each storage disk. In this way, the management module can determine the information of each storage disk group, such as the energy-saving state of the storage disk group; also can determine the information of each storage disk in the storage disk group, such as the current state of the storage disk, the storage disk Remaining storage capacity, etc.
  • the service module after receiving the write request, in response to the write request, the service module sends a storage disk information acquisition request to the management module to request the information of each storage disk group in the distributed storage system and each storage disk group Information of a storage disk.
  • the management module after receiving the storage disk information acquisition request, the management module sends the information of each storage disk group in the distributed storage system and the information of each storage disk in the storage disk group to the service module.
  • the service module divides the data to be processed into first sub-data and second sub-data, and determines the first storage disk group in the first storage disk group and the second storage disk group in the second storage disk group.
  • the access order of the first sub-data is before the access order of the second sub-data.
  • the service module can divide the data to be processed into the first sub-data and the second according to the access sequence and the wake-up delay of the energy-saving state configured by the storage disk group (the wake-up delay of the storage disk group is subsequently used)
  • the sub-data can also be divided into first sub-data and second sub-data according to other rules and the wake-up delay of the storage disk group, which is not specifically limited in this embodiment of the present application.
  • the service module mainly divides the data to be processed into the first sub-data and the second sub-data according to the access sequence and the wake-up delay of the storage disk group as an example for description.
  • the service module communicates with the management module to determine the energy-saving state configured for each storage disk group in the distributed storage system, assuming that the first storage disk group is configured with the first energy-saving state and the second storage disk group is configured with the second energy-saving state State, the wake-up delay in the first energy-saving state is less than the wake-up delay in the second energy-saving state, and the wake-up delay in the first energy-saving state is less than the wake-up delay in the second energy-saving state.
  • the wake-up delay in the energy-saving state, the wake-up delay in the second energy-saving state, and the access bandwidth calculate the size of the first sub-data, and determine the first sub-data; accordingly, the service module according to the size of the data to be processed and the first sub-data Calculate the size of the second sub-data and determine the second sub-data.
  • the above-mentioned access bandwidth may be the I / O bandwidth between the client and the storage disk, or a predetermined bandwidth with a fixed size, or may be the IO bandwidth in a specific application scenario.
  • This application implements The example does not specifically limit this.
  • the access bandwidth is the IO bandwidth between the client and the storage disk
  • the bandwidth is represented by T
  • the wake-up delay in the first energy-saving state is represented by DA
  • the wake-up delay in the second energy-saving state is represented by DB representation
  • ⁇ 1 is a time adjustment factor, which is used to adjust the time in the actual operation process to ensure the continuity of the multi-level storage read and write sequence, so that it does not wait in time, does not overlap, and is also used to adapt the business module Its own processing delay (millisecond level).
  • the value of the time adjustment factor needs to be determined according to the actual situation, and can be 0 or other values.
  • the service module determines the first sub-data and the first storage disk group according to the access sequence and the wake-up delay sequence from short to long, and then according to the status and remaining storage of each storage disk in the first storage disk group Space, determine the first storage disk group.
  • the first storage disk group includes a plurality of storage disks in the first storage disk group that are in a readable state and have a remaining storage space greater than zero.
  • the service module determines the second storage disk group according to the state of each storage disk in the second storage disk group and the remaining storage space.
  • the second storage disk group includes a plurality of storage disks in a readable state and having a remaining storage space greater than zero.
  • the storage disk group in the distributed storage system in order to meet the timeliness of reading and writing, for the storage disk group in the distributed storage system, it is set that there are always multiple storage disks in the storage disk group in a readable state (but not all , Generally a few storage disks in the storage disk group), the remaining storage disks are set to the corresponding energy-saving state.
  • the remaining storage space of the x storage disks currently in a readable state is less than the preset value, the status of the other x storage disks in the storage disk group is saved from energy saving The state is converted to a readable state.
  • the first storage disk group includes storage disks currently in a readable state in the first storage disk group
  • the second storage disk group includes storage disks currently in a readable state in the second storage disk group.
  • the service module stores the first sub-data in the first storage disk group, and stores the second sub-data in the second storage disk group.
  • the service module may use erasure coding (EC) stripe storage mode / multiple copy storage mode to write the subdata into the storage disk group, which is not made in the embodiments of the present application Specific restrictions.
  • EC erasure coding
  • the EC stripe storage method and the multi-copy storage method can refer to the prior art, and will not be described in detail here.
  • the service module determines the storage node to which each storage disk in the first storage disk group belongs, and sends a sub-data write request to the determined storage node, so that the determined storage node stores the first storage node in the corresponding storage disk A piece of data.
  • the service module determines the storage node to which each storage disk in the second storage disk group belongs, and sends a sub-data request to the determined storage node, so that the determined storage node stores the second storage disk in the corresponding storage disk Subdata.
  • the service module may execute the storage process of the first sub-data and the storage process of the second sub-data in parallel, or may store the second sub-data after the storage of the first sub-data is completed.
  • the embodiment does not specifically limit this.
  • the service module after storing the first sub-data in the first storage disk group, the service module also stores the correspondence between the first sub-data and the storage disk included in the first storage disk group, so as to facilitate subsequent data reading process, The service module determines the storage disk storing the first sub-data according to the corresponding relationship. Similarly, after storing the second sub-data in the second storage disk group, the service module also stores the correspondence between the second sub-data and the storage disk included in the second storage disk group, so as to facilitate subsequent data reading process, The service module determines the storage disk storing the second sub-data according to the corresponding relationship.
  • the correspondence between the first sub-data and the storage disks included in the first storage disk group, and the correspondence between the second sub-data and the storage disks included in the second storage disk group belong to the metadata of the data to be processed .
  • the management module sets the storage disk of the first storage disk group to the first energy-saving state; stores in the second storage disk group When the remaining storage space of the disk is zero, the management module sets the storage disk of the second storage disk group to the second energy-saving state.
  • the management module manages each storage disk.
  • the remaining storage space of the storage disks in the first storage disk group is zero, that is, there is no need to write data to the first storage disk group temporarily.
  • the first storage disk group is included in the first storage disk group. Therefore, the management module
  • the storage disks in a storage disk group are set to the first energy-saving state, which effectively reduces the power consumption of the storage disks in the first storage disk group.
  • the remaining storage space of the storage disks in the second storage disk group is zero, that is, there is no need to temporarily write data to the second storage disk group.
  • the second storage disk group is included in the second storage disk group. Therefore, the management The module sets the storage disks in the second storage disk group to the second energy-saving state, which effectively reduces the power consumption of the storage disks in the second storage disk group.
  • the first sub-data of the data to be processed is stored in the first storage disk group
  • the second sub-data of the data to be processed is stored in the second storage disk group
  • the first storage disk The group belongs to the first storage disk group in the first energy-saving state
  • the second storage disk group belongs to the second storage disk group in the second energy-saving state. Since the power consumption of the storage disks in the energy-saving state is low, compared to In the prior art, the storage method of the data to be processed effectively reduces the power consumption of the storage disk.
  • S800 to S804 realize the storage of the data to be processed. After storing the data to be processed, the service module can also read the data to be processed according to actual needs.
  • the following S805 ⁇ S810 are the reading process of the data to be processed.
  • the service module receives a read request including the identifier of the data to be processed.
  • the service module reads the metadata of the data to be processed according to the identifier of the data to be processed to determine the first storage disk group and the second storage disk group.
  • the service module stores the correspondence between the first sub-data and the storage disks included in the first storage disk group, and the correspondence between the second sub-data and the storage disks included in the second storage disk group relationship.
  • the service module determines the storage disk included in the first storage disk group according to the correspondence between the first sub-data and the storage disk included in the first storage disk group And determine the storage disk included in the second storage disk group according to the correspondence between the second sub-data and the storage disk included in the second storage disk group.
  • the service module sends a wake-up command to the management module to instruct the management module to wake up the storage disk in the first storage disk group and the storage disk in the second storage disk group.
  • the management module wakes up the storage disk in the first storage disk group and the storage disk in the second storage disk group, and sends a response message to the service module indicating that the storage disk has been successfully awakened.
  • the management module manages each storage disk. After receiving the wake-up command, the management module detects the state of the storage disks in the first storage disk group and the state of the storage disks in the second storage disk group. If the storage disks in the first storage disk group are in the first energy-saving state, the management module wakes up the storage disks in the first storage disk group. If the storage disk in the first storage disk group is in a readable state, the management module retains the state of the storage disk. Similarly, if the storage disk in the second storage disk group is in the second energy-saving state, the management module wakes up the storage disk in the second storage disk group. If the storage disk in the second storage disk group is in a readable state, the management module retains the state of the storage disk.
  • the management module wakes up a storage disk means that the management module sends a wake-up request to the storage module of the storage node to which the storage disk belongs, requesting that the state of the storage disk be converted from the energy-saving state to the readable state. It can be seen from the foregoing description that it takes a period of time for the storage disk to switch from the energy-saving state to the readable state, and this time is called a wake-up delay. The wakeup delays of storage disks in different energy-saving states are different.
  • the service module reads the first sub data from the first storage disk group, and after reading the first sub data, reads the second sub data from the second storage disk group.
  • the service module After receiving the response message, the service module determines that the storage disk in the first storage disk group and the storage disk in the second storage disk group have been awakened. Further, the service module sequentially reads the first sub-data and the second sub-data according to the access sequence.
  • the wake-up delay of the first energy-saving state is smaller than the wake-up delay of the second energy-saving state, and the size of the first sub-data is determined according to the wake-up delay of the first energy-saving state and the wake-up delay of the second energy-saving state, therefore,
  • the wake-up delay of the storage disk in the second storage disk group basically ends, so that the service module can read the second from the second storage disk group Sub-data, ensuring the data delay requirements.
  • the management module sets the storage disks in the first storage disk group to the first energy-saving state; after the business module reads the second sub-data, the management module Set the storage disks in the second storage disk group to the second energy-saving state.
  • the management module may immediately set the storage disks in the first storage disk group to the first energy-saving state after the business module reads the first sub-data, or may wait after the business module reads the first sub-data First preset time, and then set the storage disks in the first storage disk group to the first energy-saving state, and can also store the first storage disk group in the first storage disk group after the service module reads the first sub-data and the second sub-data
  • the storage disk is set to the first energy-saving state, which is not specifically limited in this embodiment of the present application.
  • the management module may immediately set the storage disk in the second storage disk group to the second energy-saving state after the service module reads the second sub-data, or may wait after the service module reads the second sub-data The second preset time, and then set the storage disk in the second storage disk group to the second energy-saving state, and can also store the second storage disk group in the second storage disk group after the service module reads the first sub-data and the second sub-data
  • the storage disk is set to the second energy-saving state, which is not specifically limited in the embodiment of the present application.
  • the management module sets the storage disks in the first storage disk group to the first energy-saving state and the storage disks in the second storage disk group to the second energy-saving state, effectively reducing the storage disks and the storage disks in the first storage disk group The power consumption of the storage disks in the second storage disk group.
  • the data processing method provided by the embodiments of the present application can not only reduce the power consumption of the storage disk, but also meet the data requirements for time delay.
  • the flow of the data processing method shown in FIG. 8 is only explained by dividing the data to be processed into first sub-data and second sub-data as an example, and does not limit the number of sub-data.
  • the business module can divide the data to be processed into n (2 ⁇ n ⁇ m) sub-data according to actual needs.
  • the module writes n sub-data into the storage disk groups in different energy-saving states.
  • the business module may divide the data to be processed into 3 sub-data; When the processed data is insufficient to be divided into 3 sub-data, the business module may divide the data to be processed into 2 sub-data.
  • the business module does not need to divide the data to be processed.
  • the method for reading and writing the data to be processed can refer to the prior art, which is not made in the embodiments of the present application specific description.
  • the method for the business module to divide the data to be processed is: for the i-th sub-data of the data to be processed, in the case of i ⁇ [1, n), the business module according to the wake-up time of the i-th storage disk group Delay, wake-up delay and access bandwidth of the i + 1th storage disk group determine the size of the i-th subdata.
  • the service module can determine the i-th sub-data according to the size of the i-th sub-data.
  • the wake-up delay of the i-th storage disk group and the wake-up delay of the i + 1th storage disk group are preset.
  • the service module determines the size of the i-th sub-data according to the size of the data to be processed and the size of each sub-data among the determined n-1 sub-data, and determines The i-th subdata. This method is consistent with the method in which the service module in S802 divides the data to be processed into the first sub-data and the second sub-data.
  • the access bandwidth is the IO bandwidth between the client and the storage disk
  • the bandwidth is represented by T
  • the wakeup delay of the A-state storage disk group is represented by DA
  • the B-state storage disk The wake-up delay of the group is represented by DB
  • the wake-up delay of the C-state storage disk group is represented by DC
  • the wake-up delay of the Z-state storage disk group is represented by DZ.
  • the service module divides the data to be processed into 4 subdata: 1.
  • ⁇ 1, ⁇ 2 and ⁇ 3 are time adjustment factors. The definition of the time adjustment factor can refer to the above description.
  • the service module can determine the storage disk group stored in each sub-data according to the access sequence of the sub-data and the wake-up delay of the storage disk group.
  • the service module writes the ith sub-data into the ith storage disk group.
  • the i-th sub-data is the i-th sub-data in which n sub-data are sequentially arranged in the order of access
  • the i-th storage disk group is the i-th storage disk group in which the wake-up delay is short to long. Storage disk group.
  • the distributed storage system includes four storage disk groups, which are: A-state storage disk group, B-state storage disk group, C-state storage disk group, Z-state Storage disk group, the four storage disk groups are arranged in order from shortest to longest wake-up delay: A state storage disk group, B state storage disk group, C state storage disk group, and Z state storage disk group.
  • the service module divides the data to be processed into four sub-data, and the four sub-data are arranged in order according to the access order: first sub-data, second sub-data, third sub-data, and fourth sub-data.
  • the service module writes the first sub-data to the No. 4 storage disk, No. 5 storage disk and No.
  • the service module writes n sub-data into storage disk groups in different energy-saving states. Subsequently, when it is necessary to read the n pieces of sub-data, the service module first determines the storage disk storing the sub-data, and then reads each sub-data sequentially according to the access sequence. This process is similar to the data reading process described in S805 to S810 above.
  • the storage disk storing the sub-data of the data to be processed includes storage disk No. 4, storage disk No. 5, and No. 6 Storage disk, storage disk 16, storage disk 17, storage disk 18, storage disk 22, storage disk 23, storage disk 24, storage disk 28, storage disk 29 and storage disk 30, and Notify the management module to wake up these storage disks.
  • the first sub-data is accessed first, because the first sub-data is stored in storage disk No. 4, storage disk No. 5, and storage disk No. 6, and storage disk No. 4, storage disk No. 5, and storage disk No.
  • the wake-up delay of the A-state storage disk group is 10 milliseconds, which is basically readable immediately. Therefore, the service module starts to read the No. 4 storage disk, No. 5 storage disk, and No. 6 storage disk. A piece of data. After reading the first sub-data, storage disk No. 16, storage disk No. 17 and storage disk No. 18 have basically been switched to a readable state, and the service module continues to read from storage disk No. 16, storage disk No. 17 and storage disk No. 18 Take the second subdata. After reading the second sub-data, storage disk No. 22, storage disk No. 23 and storage disk No. 24 have basically been switched to a readable state, and the service module continues to read from storage disk No.
  • storage disk No. 23 and storage disk No. 24 Take the third sub-data.
  • storage disk No. 28, storage disk No. 29 and storage disk No. 30 have basically been switched to the readable state, and the service module continues to read from storage disk No. 28, storage disk No. 29 and storage disk No. 30 Take the fourth sub-data. In this way, the data to be processed can be read successfully.
  • the steps performed by the business module and the management module can be regarded as steps performed by the processing module of the processing node.
  • the data processing method provided by the embodiments of the present application can not only reduce the power consumption of the storage disk, but also meet the data requirements for time delay.
  • the distributed storage system includes at least one processing node.
  • the at least one processing node includes at least one processor and at least one memory. At least one memory is used to store computer instructions, and when the at least one processor calls the computer instructions, the above data processing method is executed.
  • the at least one processor and the at least one memory are deployed on the same processing node.
  • At least one processing node includes at least two processors
  • at least two processors may be located in the same processing node, or may be located in different processing nodes, which is not specifically limited in this embodiment of the present application .
  • the first processor may be used to receive a read request including the identifier of the data to be processed; the second processor is used to In response to the read request received by the first processor, read the first sub-data from the first storage disk group, and read the second sub-data from the second storage disk group after reading the first sub-data.
  • the first processor and the second processor may be located in the same processing node, or may be located in different processing nodes.
  • Another embodiment of the present application further provides a computer-readable storage medium, where the computer-readable storage medium stores instructions, and when the instructions run on a computer (such as the at least one processing node), the method embodiment described above The method flow is executed.
  • a computer program product includes computer instructions, and when a computer (such as the at least one processing node) invokes the computer instructions, the method described in the foregoing method embodiment is executed. Method flow.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
  • the computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions can be transmitted from a website, computer, server, or data center via a cable (e.g. Coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) to another website, computer, server or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data terminal including one or more available medium integrated servers, data centers, and the like.
  • the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (SSD)), or the like.
  • the disclosed device and method may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the modules or units is only a division of logical functions.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may be one physical unit or multiple physical units, that is, may be located in one place, or may be distributed in multiple different places . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or software function unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium.
  • the technical solutions of the embodiments of the present application may be essentially or part of the contribution to the existing technology or all or part of the technical solutions may be embodied in the form of software products, which are stored in a storage medium
  • several instructions are included to enable a device (which may be a single-chip microcomputer, chip, etc.) or processor to execute all or part of the steps of the methods described in the embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program codes .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理方法及分布式存储系统,分布式存储系统的存储盘包括至少两个存储盘群,至少两个存储盘群配置有至少两个节能态。该方法包括:接收包括待处理数据的标识的读请求(S805),根据待处理数据的标识,读取待处理数据的元数据,以确定第一存储盘群和第二存储盘群(S806),第一存储盘群配置有第一节能态,第二存储盘群配置有第二节能态,第一节能态的唤醒时延小于第二节能态的唤醒时延;从第一存储盘群中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据(S809)。综合考虑存储盘的功耗和数据处理时延,提升了存储盘的工作效率。

Description

一种数据处理方法及分布式存储系统 技术领域
本申请涉及存储技术领域,尤其涉及一种数据处理方法及分布式存储系统。
背景技术
一般的,按照访问频次和时延要求,云存储系统中的数据可分为热数据(也可称为活跃/临时数据)、温数据(也可称为低频访问存储的数据/非活跃数据)、冷数据(也可称为备份/归档数据)。其中,热数据是指可随时访问、访问时延要求为毫秒(ms)级的数据,温数据是指访问频次较低(例如平均一个月访问一次)、访问时延要求为毫秒级的数据,冷数据是指访问频次非常低(例如平均一年访问一次)、访问时延要求为分钟级的数据。
目前,存储温数据的存储盘基本处于可读态。由于温数据的访问频次较低,因此,存储温数据的存储盘的输入输出(input/output,IO)功能大部分时间是空闲的,导致该存储盘的功耗较大。而温数据的时延要求为毫秒级,因此,也不能将存储温数据的存储盘下电或置为休眠态。如果将该存储盘下电或置为休眠态,则在需要读取温数据时,要先将该存储盘上电或唤醒。而上电或唤醒的过程往往需要花费30~50秒的时间,无法满足温存数据对时延的要求。
发明内容
本申请提供一种数据处理方法及分布式存储系统,能够解决无法同时满足存储盘的低功耗和数据对时延的要求的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理方法,该数据处理方法应用于包括至少一个处理节点和至少两个存储节点的分布式存储系统,至少两个存储节点的存储盘包括至少两个存储盘群,至少两个存储盘群配置有至少两个节能态,至少一个处理节点上部署有处理模块。具体的,该数据处理方法包括:处理模块在接收到包括待处理数据的标识的读请求后,根据待处理数据的标识,读取待处理数据的元数据,以确定第一存储盘群和第二存储盘群,第一存储盘群配置有第一节能态,第二存储盘群配置有第二节能态,第一节能态的唤醒时延小于第二节能态的唤醒时延,这样,处理模块从第一存储盘群中读取待处理数据的第一子数据,并在读取第一子数据后,从第二存储盘群中读取待处理数据的第二子数据。
处于节能态的存储盘的功耗较低,因此,将待处理数据的不同子数据存储于不同节能态的存储盘群的方式有效的降低了存储盘的功耗。当需要读取上述待处理数据时,根据访问先后顺序依次读取各个子数据。由于不同节能态的存储盘的唤醒时延不同,因此,可以根据访问先后顺序和唤醒时延从短到长的顺序确定子数据所存储的存储盘群以使得在需要读取某一子数据时,存储该子数据的存储盘的唤醒时延基本结束,有 效的保证了每一子数据的时延要求。
本申请中“至少两个存储盘群配置有至少两个节能态”可以指任意两个存储盘群配置的节能态不同,也可以指至少两个存储盘群中的一部分存储盘群配置的节能态相同,其他存储盘配置的节能态与这一部分存储盘的节能态不同。
可选的,在本申请的一种可能的实现方式中,从第一存储盘群中读取第一子数据之前,处理模块还根据待处理数据的元数据,确定第一存储盘群中的第一存储盘组和第二存储盘群中的第二存储盘组;其中,第一存储盘组所包括的存储盘为第一存储盘群中存储第一子数据的存储盘,第二存储盘组所包括的存储盘为第二存储盘群中存储第二子数据的存储盘。相应的,上述“处理模块从第一存储盘群中读取第一子数据”的方法为:处理模块从第一存储盘组中读取第一子数据。上述“处理模块从第二存储盘群中读取第二子数据”的方法为:处理模块从第二存储盘组中读取第二子数据。
存储盘群包括多个存储盘,第一存储盘群中的部分存储盘(如第一存储盘组包括的存储盘)用于存储第一子数据,第二存储盘群中的部分存储盘(如第二存储盘组包括的存储盘)用于存储第二子数据。
可选的,在本申请的另一种可能的实现方式中,在确定第一存储盘群中的第一存储盘组和第二存储盘群中的第二存储盘组之后,处理模块还确定第一存储盘组中的存储盘和第二存储盘组中的存储盘已被唤醒。
这里,存储盘已被唤醒可以指存储盘处于可读态,也可以指存储盘处于从节能态转换为可读态的过程中。一般的,只有第一存储盘组中的存储盘处于可读态,处理模块才能从第一存储盘组中读取到第一子数据,因此,在读取第一子数据之前,处理模块需确定第一存储盘组中的存储盘已被唤醒。同理,只有第二存储盘组中的存储盘处于可读态,处理模块才能从第二存储盘组中读取到第二子数据,因此,在读取第二子数据之前,处理模块需确定第二存储盘组中的存储盘已被唤醒。
可选的,在本申请的另一种可能的实现方式中,处理模块从第一存储盘组中读取第一子数据之后,还将第一存储盘组中的存储盘置为第一节能态。相应的,处理模块从第二存储盘组中读取第二子数据之后,还将第二存储盘组中的存储盘置为第二节能态。
处理模块读取第一子数据时,第一存储盘组中的存储盘为可读态,在读取到第一子数据后,处理模块将第一存储盘组中的存储盘置为第一节能态,有效的降低了第一存储盘组中存储盘的功耗。同理,处理模块读取第二子数据时,第二存储盘组中的存储盘为可读态,在读取到第二子数据后,处理模块将第二存储盘组中的存储盘置为第二节能态,有效的降低了第二存储盘组中存储盘的功耗。
可选的,在本申请的另一种可能的实现方式中,在接收包括待处理数据的标识的读请求之前,处理模块还会接收到包括待处理数据的写请求,并将待处理数据切分为第一子数据和第二子数据,以及将第一子数据存储于第一存储盘群中,并将第二子数据存储于第二存储盘群中,这里,第一子数据的访问顺序位于第二子数据的访问顺序之前。
处理模块根据访问先后顺序和存储盘群的唤醒时延,确定每一子数据所存储的存储盘。一般的,访问顺序在先的子数据,存储于唤醒时延较短的存储盘群中;访问顺 序在后的子数据,存储于唤醒时延相对较长的存储盘群中。这样,后续在开始读取待处理数据的某一子数据时,存储该子数据的存储盘的唤醒时延基本结束。
可选的,在本申请的另一种可能的实现方式中,上述“处理模块将待处理数据切分为第一子数据”的方法为:处理模块根据第一节能态的唤醒时延、第二节能态的唤醒时延和访问带宽,计算第一子数据的大小,并确定第一子数据,第一节能态的唤醒时延和第二节能态的唤醒时延均为预先设置的;处理模块根据待处理数据的大小以及第一子数据的大小,计算第二子数据的大小,并确定第二子数据。
可选的,在本申请的另一种可能的实现方式中,上述“处理模块将第一子数据存储于第一存储盘群中,并将第二子数据存储于第二存储盘群中”的方法为:处理模块将第一子数据存储于第一存储盘组,并将第二子数据存储于第二存储盘组。此外,在第一存储盘组中存储盘的剩余存储空间为零时,处理模块将第一存储盘组的存储盘置为第一节能态。在第二存储盘组中存储盘的剩余存储空间为零时,处理模块将第二存储盘组的存储盘置为第二节能态。
实际应用中,为了保证数据的可靠性,处理模块可以采用纠删码(erasure coding,EC)条带存储方式/多副本存储方式将子数据写入存储盘组中。当存储盘组中存储盘的剩余存储空间为零时,将该存储盘组的存储盘置为节能态,有效的降低存储盘的功耗。
第二方面,提供一种分布式存储系统,分布式存储系统包括至少一个处理节点和至少两个存储节点,至少两个存储节点的存储盘包括至少两个存储盘群,至少两个存储盘群配置有至少两个节能态,至少一个处理节点上部署有处理模块,该处理模块用于执行上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
第三方面,提供一种分布式存储系统,该分布式存储系统包括至少两个存储节点,至少两个存储节点的存储盘包括至少两个存储盘群,其中,第一存储盘群处于第一节能态,第二存储盘群处于第二节能态,第一节能态的唤醒时延小于第二节能态的唤醒时延。所述至少两个存储盘群用于存储待处理数据,该待处理数据包括第一子数据和第二子数据;第一存储盘群存储第一子数据,第二存储盘群存储第二子数据。
可选的,在本申请的一种可能的实现方式中,上述分布式存储系统还包括至少一个处理节点,至少一个处理节点存储有待处理数据的元数据,待处理数据的元数据中记录有第一存储盘群与第一子数据的对应关系、以及第二存储盘群与第二子数据的对应关系。
第四方面,提供一种分布式存储系统,该分布式存储系统包括至少一个处理节点,所述至少一个处理节点包括至少一个处理器和至少一个存储器。至少一个存储器,用于存储计算机指令,当所述至少一个处理器调用所述计算机指令时,执行上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
可选的,在本申请的一种可能的实现方式中,上述至少一个处理器和上述至少一个存储器部署于同一处理节点上。
可选的,在本申请的另一种可能的实现方式中,本申请中的至少一个处理节点包括第一处理器和第二处理器,第一处理器和第二处理器可以位于同一处理节点上,也可以分别部署于不同的处理节点中。可选的,第一处理器用于接收包括待处理数据的标识的读请求。第二处理器用于响应于第一处理器接收到的读请求,从第一存储盘群 中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据。
第五方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有指令,当指令在计算机上运行时,使得上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法被执行。
第六方面,提供一种包含指令的计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在计算机上运行时,使得上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法被执行。
可以理解的,上述提供的分布式存储系统计算机存储介质或计算机程序产品等均用于执行上文所提供的对应的数据处理方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
在本申请中,上述处理模块的名字对功能模块本身不构成限定,在实际实现中,这些功能模块可以以其他名称出现。只要各个功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例中分布式存储系统的结构示意图一;
图2A为本申请实施例中处理节点的结构示意图一;
图2B为本申请实施例中处理节点的结构示意图二;
图2C为本申请实施例中处理节点的结构示意图三;
图3为本申请实施例中分布式存储系统的结构示意图二;
图4为本申请实施例中分布式存储系统的结构示意图三;
图5为本申请实施例中存储盘群的结构示意图;
图6为本申请实施例中存储节点的结构示意图一;
图7为本申请实施例中存储节点的结构示意图二;
图8为本申请实施例中数据处理方法的流程示意图;
图9为本申请实施例中子数据的存储示意图。
具体实施方式
为了便于理解本申请,先对本申请涉及到的相关要素进行解释。
存储盘:
存储盘是指存储节点的存储介质。其中,存储节点可以参考下述对图1、图6、图7的描述。
可选的,本申请中的存储盘可以是串行高级技术附件(serial advanced technology attachment,SATA)硬盘、串行连接SCSI(serial attached SCSI,SAS)硬盘、移动硬盘、通用串行总线(universal serial bus,USB)硬盘等,也可以是硬盘(hard disk drive,HDD)、固态硬盘(solid state drives,SSD),还可以是其他存储介质,本申请对此不作具体限定。
一般的,存储盘可处于可读态和节能态。处于节能态的存储盘的功耗小于处于可读态的存储盘的功耗。
存储盘的可读态:
处于可读态的存储盘支持立即读,也就是说,该存储盘的唤醒时延很低,接近没有唤醒时延。若某一存储盘一直处于可读态,则该存储盘的功耗为5.4瓦。本申请实施例将该状态的存储盘称为空闲态0(Idle_0)存储盘。
存储盘的节能态:
目前,各大存储盘厂家提供的存储盘均已支持多个节能态。每一节能态均对应一种存储盘功耗和唤醒时延,其中,唤醒时延为存储盘从节能态转换为可读态的时延。不同节能态所对应的存储盘功耗不同,同理,不同节能态对应的唤醒时延也不同。
示例性的,表1示出了某一型号的存储盘在不同节能态的存储盘功耗和唤醒时延。
表1
Figure PCTCN2019105703-appb-000001
云存储系统的数据:
云存储系统中的数据包括热数据、温数据以及冷数据。
热数据可被随时访问、访问时延要求为毫秒级,因此,存储热数据的存储盘基本处于可读态。
冷数据的访问频次非常低(例如平均一年访问一次)、时延要求为分钟级,因此,可将存储冷数据的存储盘下电或置为休眠态,以降低该存储盘的功耗;后续,在需要读冷数据时,再将该存储盘上电或置为可读态。
温数据的访问频次较低(例如平均一个月访问一次)、时延要求为毫秒级。
本申请涉及到的数据可以为对象,也可以为块,还可以为文件,本申请对此不作具体限定。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
目前,存储温数据的存储盘基本处于可读态。由于温数据的访问频次较低,因此,存储温数据的存储盘的IO功能大部分时间是空闲的,也就是说,存储温数据的存储盘大部分时间都是在空转,该存储盘的功耗较大。而温数据的时延要求为毫秒级,因此,也不能将存储温数据的存储盘下电或置为休眠态。如果将该存储盘下电或置为休眠态, 则在需要读取温数据时,要先将该存储盘上电或唤醒。而上电或唤醒的过程往往需要花费30~50秒的时间,无法满足温存数据对时延的要求。也就是说,目前无法提供一种既能满足温数据的时延要求,又能降低存储盘的功耗的方法。
为此,本申请提供一种数据处理方法及分布式存储系统。具体的,分布式存储系统的存储盘包括至少两个存储盘群,且至少两个存储盘群配置有至少两个节能态,某一数据的不同子数据存储于该分布式存储系统的不同节能态的存储盘群中。由于处于节能态的存储盘的功耗较低,因此,将数据的不同子数据存储于不同节能态的存储盘群的方式有效的降低了存储盘的功耗。当需要读取上述数据时,根据访问先后顺序依次读取各个子数据。由于不同节能态的存储盘的唤醒时延不同,因此,可以根据访问先后顺序和唤醒时延从短到长的顺序确定子数据所存储的存储盘群以使得在需要读取某一子数据时,存储该子数据的存储盘的唤醒时延基本结束,有效的保证了每一子数据的时延要求。
可选的,在本申请中,如果某一子数据的访问顺序越早,则存储该子数据的存储盘群的唤醒时延越短;相对的,如果某一子数据的访问顺序越晚,则存储该子数据的存储盘群的唤醒时延越长。在读取某一数据时,可以唤醒存储该数据的子数据的所有存储盘,这样,对于某一子数据而言,在需要读取该子数据时,存储该子数据的存储盘的唤醒时延基本结束,既能满足数据的时延要求,又能降低存储盘的功耗。
示例性的,本申请实施例提供的分布式存储系统包括至少两个存储盘群,待处理数据的第一子数据存储于第一存储盘群,待处理数据的第二子数据存储于第二存储盘群,第一存储盘群和第二存储盘群配置的节能态不同,这样,在需要读取待处理数据时,从第一存储盘群中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据。
本申请实施例提供的数据处理方法适用于分布式存储系统。图1为该分布式存储系统的一种结构示意图。如图1所示,分布式存储系统可以包括至少一个处理节点10和至少两个存储节点11,处理节点10可与每个存储节点11通信。若分布式存储系统包括多个处理节点10,则不同处理节点10之间也可通信。可以理解的,图1所示的分布式存储系统仅为一个示例,在实际应用时,多个存储节点11之间也可以直接进行通信,或通过其他设备进行通信,本申请实施例对此不进行限定。
处理节点10,是分布式存储系统中提供IO处理能力的设备。
处理节点10,可以用于根据写请求,将待写入数据切分为多个子数据,并将每个子数据存储于相应的存储盘中,也可以用于在接收到读请求后,依次读取每一子数据,还可以在将子数据存储于存储盘后,保存该子数据与存储盘之间的对应关系,即保存该子数据的元数据,还可以监控/管理至少两个存储节点11的存储盘的状态。
可选的,结合上述图1,如图2A所示,处理节点10包括:通信接口101、处理器102、内存103和非易失性存储器104,其中,通信接口101、处理器102、内存103和非易失性存储器104通过系统总线105连接。
通信接口101用于与其他设备(如存储节点11)通信。
处理器102用于完成处理节点10的功能。该处理器102可以是任何计算器件,可以是通用中央处理器(central processing unit,CPU),微处理器,可编程控制器,特 定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。处理器102是处理节点10的控制中心。
在具体实现中,作为一种实施例,处理器102可以包括一个或多个CPU,例如图2A中的处理器包括CPU 0和CPU 1。
处理器102还可以包括缓存(图2A中未示出),该缓存可以采用高速缓冲存储器cache体现,该缓存用于存储各种程序指令。
内存103用于缓存从外设接收的数据或从非易失性存储器104读取的数据。内存103可以为只读存储器(read-only memory,ROM)或闪存(Flash)等各种可以存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。
可选的,处理器102中的缓存和内存103可以集成设置或者独立设置,本申请实施例对此不做限定。
非易失性存储器104可以用于存储软件程序以及应用模块,如处理节点10的系统程序、切分待写入数据的应用模块等,处理器102通过运行该软件程序/应用模块,从而执行处理节点10的各种功能应用以及数据处理。
非易失性存储器104可以为只读存储器(read-only memory,ROM)、静态随机存储器(static RAM,SRAM)、快闪存储器(flash memory)、HDD、SSD、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由网络设备存取的任何其他介质,但不限于此。
可选的,结合上述图2A示出的处理节点,本申请实施例提供的处理节点还可以包括用于存储数据的至少两个存储盘。这里的至少两个存储盘可以直接通过系统总线与处理节点中的其他组件连接(图2B示出了该结构的处理节点),也可以是通过适配卡(适配卡通过系统总线与其他组件连接)与处理节点中的其他组件连接的存储装置所包括的存储盘(图2C示出了该结构的处理节点)。
其中,图2B示出的处理节点可以以服务器的形态存在,图2C示出的处理节点可以以连接有存储装置的服务器的形态存在。由于图2B和图2C示出的处理节点均包括至少两个存储盘,因此,图2B和图2C示出的处理节点均可属于特殊的存储节点。在实际应用中,图2C示出的存储装置还包括用于管理所述至少两个存储盘的存储控制器,图2C并未示出。
本申请实施例的至少一个处理节点10上部署有处理模块20。该处理模块20可以是软件模块,例如进程/线程。
该处理模块20可以完成处理节点10的功能,即处理模块20可以用于接收读请求,并响应于该读请求从至少两个存储节点11中读取相应的数据,也可以用于接收写请求,并响应于该写请求将待写数据切分为多个子数据,以及将每个子数据存储于相应的存储盘中,还可以在存储子数据后,存储该子数据与存储盘之间的对应关系,即保存该子数据的元数据,还可以监控/管理至少两个存储节点11的存储盘的状态。
示例性的,处理模块20用于接收包括待处理数据的写请求,并将待处理数据切分为第一子数据和第二子数据,以及将第一子数据存储于至少两个存储节点11的第一存储盘群中,将第二子数据存储于至少两个存储节点11的第二存储盘群中,第一存储盘群和第二存储盘群配置有不同的节能态,存储盘群可以参考后续描述。处理模块20 还用于接收包括待处理数据的标识的读请求,并根据该待处理数据的标识,读取待处理数据的元数据,以确定第一存储盘群和第二存储盘群,以及从第一存储盘群中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据。可选的,处理模块20还存储第一存储盘群中的存储盘与第一子数据之间的对应关系,存储第二存储盘群中的存储盘与第二子数据之间的对应关系。
处理模块20的部分或全部可以以计算机程序的形式存储于某一处理节点10的非易失性存储器中(或某一处理节点10的内存103中)。图2A示出了处理模块20以计算机程序的形式存储于一个处理节点10的非易失性存储器104的结构。
可选的,该处理模块20可以包括业务模块201和管理模块202。业务模块201与管理模块202、存储节点11通信,用于接收读请求,并响应于该读请求从至少两个存储节点11中读取相应的数据,也可以用于接收写请求,并响应于该写请求将待写数据切分为多个子数据,以及将每个子数据存储于至少两个存储节点11中。业务模块201还可以存储子数据与存储盘群之间的对应关系。管理模块202用于监控/管理至少两个存储节点11的存储盘群,还用于管理每个存储盘。
容易理解的是,业务模块201和管理模块202均属于处理模块20的子模块。业务模块201和管理模块202均可以是软件模块,例如进程/线程。
实际应用中,业务模块201可以由至少两个处理节点10中的某一处理节点10实现,也可以为至少两个处理节点10中的某一处理节点10中的一个功能模块,还可以分布式的设置于多个处理节点10。类似的,管理模块202可以由至少两个处理节点10中的某一处理节点10实现,也可以为至少两个处理节点10中的某一处理节点10中的一个功能模块,还可以分布式的设置于多个处理节点10。
也就是说,业务模块201和管理模块202可以位于同一处理节点10上(其示意图如图3所示),也可以位于不同的处理节点10上(其示意图如图4所示)。图3和图4从软件的角度示出了处理节点10的结构,图3和图4均为业务模块201和管理模块202的分布结构示意图,并不是对业务模块201和管理模块202的分布结构的限定。
容易理解的是,业务模块201和管理模块202可以以计算机程序的形式存储于相应的处理节点10的非易失性存储器104(或内存103)中。
当然,在实际应用中,还可根据处理模块20的实际功能将处理模块划分出其他功能模块,例如元数据模块,该元数据模块用于存储子数据与存储盘群之间的对应关系,本申请实施例对此不作具体限定。
图1中的存储节点11,是分布式存储系统中提供存储空间的设备。
本申请实施例的分布式存储系统中,至少两个存储节点11的存储盘构成存储盘池,该存储盘池中存储盘的根据唤醒时延被划分为至少两个存储盘群,每个存储盘群的唤醒时延不同。为了便于描述,后续采用“至少两个存储节点11的存储盘划分为至少两个存储盘群”描述。
在实际应用中,根据存储盘可支持的节能态,将至少两个存储节点11的存储盘划分为至少两个存储盘群,其中,至少两个存储盘群配置有至少两个节能态。
存储盘群的数量可以与存储盘支持的节能态的种类相同,也可以小于存储盘支持的节能态的种类。至少两个存储盘群中的任意两个存储盘群所配置的节能态可能不同, 也可能相同。
示例性的,结合上述表1和图1,如图5所示,若存储盘支持4种节能态(A态、B态、C态、Z态),则可以将至少两个存储节点11的存储盘划分为4个存储盘群,这4个存储盘群分别为:A态存储盘群、B态存储盘群、C态存储盘群、Z态存储盘群。
上述A态存储盘群中存储盘的唤醒时延为10毫秒,功耗为5.3瓦,该状态的存储盘与空闲态0存储盘的性能基本一致。上述B态存储盘群中存储盘的唤醒时延为1.5秒,功耗为3.4瓦,相较于空闲态0存储盘,B态存储盘群中存储盘的功耗降低37%。上述C态存储盘群中存储盘的唤醒时延为4秒,功耗为2.8瓦,相较于空闲态0存储盘,C态存储盘群中存储盘的功耗降低48%。上述Z态存储盘群中存储盘的唤醒时延为15秒,功耗为0.7瓦,相较于空闲态0存储盘,Z态存储盘群中存储盘的功耗降低87%。
当然,根据实际需要,至少两个存储节点11的存储盘被划分的存储盘群的数量也可以小于4。例如将至少两个存储节点11的存储盘划分为3个存储盘群,这3个存储盘群分别为:A态存储盘群、B态存储盘群、C态存储盘群。
可选的,上述至少两个存储盘群按照唤醒时延由短到长的顺序依次排列。容易理解的是,为了便于描述,本申请实施例主要以至少两个存储盘群按照唤醒时延由短到长的顺序依次排列为例进行说明。在实际应用中,至少两个存储盘群也可以按照唤醒时延由长到短的顺序依次排列,本申请对此不作具体限定。
上述至少两个存储节点的存储盘包括每个存储节点的存储盘。本申请实施例中,对于每个存储节点而言,该存储节点的存储盘可以为连接该存储节点的系统总线的存储盘,也可以为与适配卡连接的外设中的存储盘,该适配卡与系统总线连接。
可选的,存储节点11可以具备上述处理节点10的功能,这样,存储节点11与处理节点11可以视为同一设备。这种场景中,存储节点11的硬件结构可以参考上述图2B或图2C。
当然,存储节点11也可以不具备上述处理节点10的功能,仅具备用于存储数据的功能。下述图6和下述图7示出了这种场景中存储节点11的硬件结构。
如图6所示,存储节点11包括:通信接口60、处理器61和存储单元62,其中,通信接口60、处理器61和存储单元62通过系统总线63连接。
通信接口60用于与其他设备(如处理节点10)通信。
处理器61用于实现数据的存储流程。
处理器61可以是任何计算器件,可以是CPU,微处理器,可编程控制器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。处理器61是存储节点11的控制中心。
存储单元62可以包括至少一个存储控制器,以及每一存储控制器连接的多个存储盘。其中,存储控制器可以是ASIC芯片,也可以是现场可编程门阵列(Field-Programmable Gate Array,FPGA)。这里,存储单元62的物理形态可以是SSD,也可以是HDD。
可选的,图6示出的存储节点11可以以服务器的形态存在。
如图7所示,存储节点11包括:通信接口70、处理器71、存储器72、适配卡73和存储设备74,其中,通信接口70、处理器71、存储器72和适配卡73通过系统总线75连接,存储设备74包括多个存储盘,存储设备74与适配卡73连接。
通信接口70用于与其他设备(如处理节点10)通信。
处理器71用于实现数据的存储流程。
处理器71可以是任何计算器件,可以是CPU,微处理器,可编程控制器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。处理器71是存储节点11的控制中心。
存储器72可以用于存储软件程序以及应用模块,如存储节点11的系统程序。处理器71通过运行该团软件程序/应用模块,从而执行存储节点11的各种功能应用。
可选的,图7中的通信接口70、处理器71、存储器72以及适配卡73可以组成服务器,存储设备74可视为与该服务器连接的专用于存储的外设。当然,存储设备74还包括存储控制器,图7并未示出。
从软件的角度上看,图6或图7示出的存储节点11包括存储模块,该存储模块用于管理数据的写入或读取。该存储模块可与上述业务模块201通信,以实现数据的写入/读取,也可与管理模块202通信,以实现对存储盘的状态的控制。
通常,在执行读写操作之前,首先需要搭建分布式存储系统。具体的,根据配置文件在分布式存储系统的至少两个存储节点11上部署至少两个存储盘群等。其中,配置文件可以用于记录:分布式存储系统中的存储盘群的数量,每个存储盘群的唤醒时延等。
以下,结合上述图1~图7,对本申请实施例提供的数据处理方法进行说明。
从上面描述可知,本申请实施例的提供的分布式存储系统的存储盘包括至少两个存储盘群,且至少两个存储盘群配置有至少两个节能态某一数据的不同子数据存储于不同节能态的存储盘群中。为了便于说明,以分布式存储系统的存储盘预先被配置有至少两个存储盘群,每个存储盘群配置的节能态不同,读写待处理数据,待处理数据包括第一子数据和第二子数据为例进行说明。
此外,结合上述描述,以业务模块、管理模块为例说明本申请实施例提供的数据处理方法。
图8为本申请实施例提供的一种数据处理方法的交互示意图。图8所示的方法可以包括如下步骤:
S800、业务模块接收包括待处理数据的写请求。
S801、业务模块与管理模块通信,以获取分布式存储系统中存储盘的相关信息。
结合上述描述可知,管理模块用于监控/管理至少两个存储节点的存储盘群,还用于管理每个存储盘。这样,管理模块能够确定出每个存储盘群的信息,如存储盘群所配置的节能态;还能够确定出存储盘群中每个存储盘的信息,如存储盘目前的状态、存储盘的剩余存储容量等。
可选的,在接收到写请求后,响应于该写请求,业务模块向管理模块发送存储盘信息获取请求,以请求获取分布式存储系统中每个存储盘群的信息以及存储盘群中每个存储盘的信息。相应的,在接收到存储盘信息获取请求后,管理模块向业务模块发 送分布式存储系统中每个存储盘群的信息以及存储盘群中每个存储盘的信息。
S802、业务模块将待处理数据切分为第一子数据和第二子数据,并确定第一存储盘群中的第一存储盘组和第二存储盘群中的第二存储盘组。
其中,第一子数据的访问顺序位于第二子数据的访问顺序之前。
可选的,业务模块可以根据访问先后顺序以及存储盘群配置的节能态的唤醒时延(后续采用存储盘群的唤醒时延表示),将待处理数据切分为第一子数据和第二子数据,还可以根据其他规则以及存储盘群的唤醒时延,将待处理数据切分为第一子数据和第二子数据,本申请实施例对此不作具体限定。
本实施例主要以业务模块根据访问先后顺序以及存储盘群的唤醒时延,将待处理数据切分为第一子数据和第二子数据为例进行说明。
具体的,业务模块与管理模块通信,确定出分布式存储系统中每一存储盘群配置的节能态,假设第一存储盘群配置有第一节能态,第二存储盘群配置有第二节能态,第一节能态的唤醒时延小于第二节能态的唤醒时延,且第一节能态的唤醒时延小于第二节能态的唤醒时延均为预先设置的,则业务模块根据第一节能态的唤醒时延、第二节能态的唤醒时延和访问带宽,计算第一子数据的大小,并确定第一子数据;相应的,业务模块根据待处理数据的大小以及第一子数据的大小,计算第二子数据的大小,并确定第二子数据。
可选的,上述访问带宽可以为客户端到存储盘之间的I/O带宽,也可以为预先设定的大小固定的带宽,还可以为某一特定应用场景中的IO带宽,本申请实施例对此不作具体限定。
示例性的,结合上述表1,若访问带宽为客户端到存储盘之间的IO带宽,该带宽采用T表示,第一节能态的唤醒时延采用DA表示,第二节能态的唤醒时延采用DB表示,业务模块将待处理数据切分为第一子数据和第二子数据,则第一子数据的大小L1为:L1=T×(DB–DA+λ1),第二子数据的大小L2为:L2=待处理数据的大小–L1。其中,λ1是时间调节因子,用于调整实际运行过程中的时间,以保证多级存储读写的先后顺序的连贯性,使得在时间上不等待,不重叠,同时也用于适配业务模块自身的处理时延(毫秒级别)。时间调节因子的数值需要根据实际情况确定,可以为0,也可以为其他数值。
具体的,业务模块根据访问先后顺序和唤醒时延从短到长的顺序,确定第一子数据以及第一存储盘群后,根据该第一存储盘群中每个存储盘的状态以及剩余存储空间,确定第一存储盘组。该第一存储盘组包括第一存储盘群中多个处于可读态、且剩余存储空间大于零的存储盘。相应的,业务模块在确定第二子数据以及第二存储盘群后,根据该第二存储盘群中每个存储盘的状态以及剩余存储空间,确定第二存储盘组。该第二存储盘组包括多个处于可读态、且剩余存储空间大于零的存储盘。
需要说明的是,在实际应用中,为了满足读写的时效性,对于分布式存储系统中的存储盘群,设置该存储盘群中一直存在多个处于可读态的存储盘(但并非全部,一般为存储盘群中的少数存储盘),其余存储盘设置为相应的节能态。可选的,对于某一存储盘群而言,若当前处于可读态的x个存储盘的剩余存储空间小于预设值,则将该存储盘群中的其他x个存储盘的状态从节能态转换为可读态。
相应的,上述第一存储盘组包括第一存储盘群中当前处于可读态的存储盘,上述第二存储盘组包括第二存储盘群中当前处于可读态的存储盘。
S803、业务模块将第一子数据存储于第一存储盘组中,并将第二子数据存储于第二存储盘组中。
可选的,为了保证数据的可靠性,业务模块可以采用纠删码(erasure coding,EC)条带存储方式/多副本存储方式将子数据写入存储盘组中,本申请实施例对此不作具体限定。EC条带存储方式和多副本存储方式可参考现有技术,这里不再进行详细赘述。
具体的,业务模块确定第一存储盘组中每个存储盘所归属的存储节点,并向确定出的存储节点发送子数据写请求,以便于确定出的存储节点在相应的存储盘中存储第一子数据。同理,业务模块确定第二存储盘组中每个存储盘所归属的存储节点,并向确定出的存储节点发送子数据请求,以便于确定出的存储节点在相应的存储盘中存储第二子数据。
可选的,本申请实施例中业务模块可以并列执行第一子数据的存储过程和第二子数据的存储过程,也可以在第一子数据存储结束后,再存储第二子数据,本申请实施例对此不作具体限定。
进一步地,在将第一子数据存储于第一存储盘组后,业务模块还存储第一子数据和第一存储盘组包括的存储盘之间的对应关系,以便于后续在读数据过程中,业务模块根据该对应关系确定存储第一子数据的存储盘。同理,在将第二子数据存储于第二存储盘组后,业务模块还存储第二子数据和第二存储盘组包括的存储盘之间的对应关系,以便于后续在读数据过程中,业务模块根据该对应关系确定存储第二子数据的存储盘。一般的,第一子数据和第一存储盘组包括的存储盘之间的对应关系,以及第二子数据和第二存储盘组包括的存储盘之间的对应关系属于待处理数据的元数据。
S804(可选的)、在第一存储盘组中存储盘的剩余存储空间为零时,管理模块将第一存储盘组的存储盘置为第一节能态;在第二存储盘组中存储盘的剩余存储空间为零时,管理模块将第二存储盘组的存储盘置为第二节能态。
管理模块管理每个存储盘。第一存储盘组中存储盘的剩余存储空间为零,即暂时不需要将数据写入第一存储盘组中,第一存储盘组包括于第一存储盘群中,因此,管理模块将第一存储盘组中的存储盘置为第一节能态,有效的降低了该第一存储盘组中存储盘的功耗。
同理,第二存储盘组中存储盘的剩余存储空间为零,即暂时不需要将数据写入第二存储盘组中,第二存储盘组包括于第二存储盘群中,因此,管理模块将第二存储盘组中的存储盘置为第二节能态,有效的降低了该第二存储盘组中存储盘的功耗。
综上,对于待处理数据而言,将该待处理数据的第一子数据存储于第一存储盘组,将该待处理数据的第二子数据存储于第二存储盘组,第一存储盘组归属于第一节能态的第一存储盘群,第二存储盘组归属于第二节能态的第二存储盘群,由于处于节能态的存储盘的功耗较低,因此,相比于现有技术,待处理数据的存储方式有效的降低了存储盘的功耗。
S800~S804实现了待处理数据的存储,在存储待处理数据后,业务模块还可以根据实际需求读取该待处理数据。下述S805~S810为待处理数据的读取过程。
S805、业务模块接收包括待处理数据的标识的读请求。
S806、业务模块根据待处理数据的标识,读取待处理数据的元数据,以确定第一存储盘组和第二存储盘组。
结合上述描述可知,业务模块存储有第一子数据和第一存储盘组包括的存储盘之间的对应关系,以及存储有第二子数据和第二存储盘组包括的存储盘之间的对应关系。
具体的,在接收到包括待处理数据的标识的读请求后,业务模块根据第一子数据和第一存储盘组包括的存储盘之间的对应关系,确定第一存储盘组包括的存储盘,并根据第二子数据和第二存储盘组包括的存储盘之间的对应关系,确定第二存储盘组包括的存储盘。
S807、业务模块向管理模块发送唤醒命令,指示管理模块唤醒第一存储盘组中的存储盘和第二存储盘组中的存储盘。
S808、管理模块唤醒第一存储盘组中的存储盘和第二存储盘组中的存储盘,并向业务模块发送用于指示已成功唤醒的响应消息。
管理模块管理每个存储盘。在接收到唤醒命令后,管理模块检测第一存储盘组中的存储盘的状态以及第二存储盘组中的存储盘的状态。若第一存储盘组中的存储盘处于第一节能态,则管理模块唤醒第一存储盘组中的存储盘。若第一存储盘组中的存储盘处于可读态,则管理模块保留该存储盘的状态。同理,若第二存储盘组中的存储盘处于第二节能态,则管理模块唤醒第二存储盘组中的存储盘。若第二存储盘组中的存储盘处于可读态,则管理模块保留该存储盘的状态。
本申请实施例中管理模块唤醒某一存储盘是指管理模块向该存储盘所归属的存储节点的存储模块发送唤醒请求,请求将该存储盘的状态从节能态转换为可读态。结合前面描述可知,存储盘从节能态转换为可读态需要一段时间,该时间称为唤醒时延。不同节能态的存储盘的唤醒时延不同。
S809、业务模块从第一存储盘组中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据。
在接收到响应消息后,业务模块确定第一存储盘组中的存储盘和第二存储盘组中的存储盘已被唤醒。进一步地,业务模块根据访问先后顺序,依次读取第一子数据和第二子数据。
第一节能态的唤醒时延小于第二节能态的唤醒时延,且第一子数据的大小是根据第一节能态的唤醒时延和第二节能态的唤醒时延确定出的,因此,业务模块从第一存储盘组中读取第一子数据后,第二存储盘组中存储盘的唤醒时延也基本结束,这样,业务模块即可从第二存储盘组中读取第二子数据,保证了数据对时延的要求。
S810(可选的)、在业务模块读取第一子数据后,管理模块将第一存储盘组中的存储盘置为第一节能态;在业务模块读取第二子数据后,管理模块将第二存储盘组中的存储盘置为第二节能态。
可选的,管理模块可以在业务模块读取第一子数据后,立刻将第一存储盘组中的存储盘置为第一节能态,也可以在业务模块读取第一子数据后,等待第一预设时间,然后再将第一存储盘组中的存储盘置为第一节能态,还可以在业务模块读取第一子数据和第二子数据后,将第一存储盘组中的存储盘置为第一节能态,本申请实施例对此 不作具体限定。
可选的,管理模块可以在业务模块读取第二子数据后,立刻将第二存储盘组中的存储盘置为第二节能态,也可以在业务模块读取第二子数据后,等待第二预设时间,然后再将第二存储盘组中的存储盘置为第二节能态,还可以在业务模块读取第一子数据和第二子数据后,将第二存储盘组中的存储盘置为第二节能态,本申请实施例对此不作具体限定。
管理模块将第一存储盘组中的存储盘置为第一节能态以及将第二存储盘组中的存储盘置为第二节能态,有效的降低了第一存储盘组中的存储盘和第二存储盘组中的存储盘的功耗。
综上所述,本申请实施例提供的数据处理方法既能降低存储盘的功耗,还能满足数据对时延的要求。
图8示出的数据处理方法的流程仅仅以待处理数据切分为第一子数据和第二子数据为例进行说明,并不是对子数据的数量的限定。
在实际应用中,若分布式存储系统包括m(m≥2)个存储盘群,则业务模块可根据实际需求将待处理数据切分为n(2≤n≤m)个子数据,后续,业务模块将n个子数据写入不同节能态的存储盘群中。
示例性的,在分布式系统包括4个存储盘群的场景中,若待处理数据不足以被切分为4个子数据时,业务模块可将该待处理数据切分为3个子数据;若待处理数据不足以被切分为3个子数据时,业务模块可将该待处理数据切分为2个子数据。
特殊的,若待处理数据不足以被切分为2个子数据时,业务模块无需切分待处理数据,该场景中待处理数据的读写方法可以参考现有技术,本申请实施例对此不作具体描述。
具体的,业务模块切分待处理数据的方法为:对于待处理数据的第i个子数据而言,在i∈[1,n)的情况下,业务模块根据第i个存储盘群的唤醒时延、第i+1个存储盘群的唤醒时延和访问带宽,确定第i个子数据的大小。这样,业务模块即可根据第i个子数据的大小,确定第i个子数据。其中,第i个存储盘群的唤醒时延和第i+1个存储盘群的唤醒时延均为预先设置的。在i=n的情况下,业务模块根据待处理数据的大小以及已确定的n-1个子数据中每个子数据的大小,确定第i个子数据的大小,并根据第i个子数据的大小,确定第i个子数据。该方法与上述S802中业务模块将待处理数据切分为第一子数据和第二子数据的方法一致。
在一种实现方式中,结合上述表1,若访问带宽为客户端到存储盘之间的IO带宽,该带宽采用T表示,A态存储盘群的唤醒时延采用DA表示,B态存储盘群的唤醒时延采用DB表示,C态存储盘群的唤醒时延采用DC表示,Z态存储盘群的唤醒时延采用DZ表示,业务模块将待处理数据切分为4个子数据:子数据1、子数据2、子数据3以及子数据4,则子数据1的大小L1为:L1=T×(DB–DA+λ1),子数据2的大小L2为:L2=T×(DC–DB+λ2),子数据3的大小L3为:L3=T×(DZ–DC+λ3),子数据4的大小L4为:L4=待处理数据的大小–L1–L2–L3。其中,λ1、λ2和λ3是时间调节因子。时间调节因子的定义可以参考上述描述。
示例性的,若客户端到存储盘之间的IO带宽为100Mbps(兆比特每秒),即 12.5MBps(兆字节每秒),DA为10毫秒,DB为1.5秒,DC为4秒,DZ为15秒,将毫秒级别的λ忽略不计,则L1=12.5×(1.5–0.01)=18.75MB,L2=12.5×(4–1.5)=31.25MB,L3=12.5×(15–4)=137.5MB,L4=待处理数据的大小–L1–L2–L3。
业务模块在确定出n个子数据后,可以根据子数据的访问先后顺序和存储盘群的唤醒时延,确定每个子数据所存储的存储盘群。示例性的,业务模块将第i个子数据写入第i个存储盘群。其中,第i个子数据为n个子数据按照访问先后顺序依次排列的第i个子数据,第i个存储盘群为m个存储盘群按照唤醒时延由短到长的顺序依次排列的第i个存储盘群。
示例性的,如图9所示,分布式存储系统包括四个存储盘群,这四个存储盘群分别为:A态存储盘群、B态存储盘群、C态存储盘群、Z态存储盘群,这四个存储盘群根据唤醒时延从短到长的顺序依次排列为:A态存储盘群、B态存储盘群、C态存储盘群、Z态存储盘群。业务模块将待处理数据切分为四个子数据,这四个子数据按照访问先后顺序依次排列为:第一子数据、第二子数据、第三子数据、第四子数据。业务模块将第一子数据写入A态存储盘群的4号存储盘、5号存储盘和6号存储盘中,将第二子数据写入B态存储盘群的16号存储盘、17号存储盘和18号存储盘中,将第三子数据写入C态存储盘群的22号存储盘、23号存储盘和24号存储盘中,将第四子数据写入Z态存储盘群的28号存储盘、29号存储盘和30号存储盘中。
业务模块将n个子数据写入不同节能态的存储盘群中。后续,在需要读取所述n个子数据时,业务模块先确定存储子数据的存储盘,再根据访问顺序依次读取每一子数据。该流程与上述S805~S810所述的读数据流程类似。
示例性的,如图9所示,当业务模块接收到包括待处理数据标识的读请求时后,确定存储待处理数据的子数据的存储盘包括4号存储盘、5号存储盘、6号存储盘、16号存储盘、17号存储盘、18号存储盘、22号存储盘、23号存储盘、24号存储盘、28号存储盘、29号存储盘和30号存储盘中,并通知管理模块唤醒这些存储盘。第一子数据最先被访问,由于第一子数据存储于4号存储盘、5号存储盘和6号存储盘,且4号存储盘、5号存储盘和6号存储盘为A态存储盘群中的存储盘,A态存储盘群的唤醒时延是10毫秒,基本可立即读取,因此,业务模块开始从4号存储盘、5号存储盘和6号存储盘上读取第一子数据。在读取第一子数据后,16号存储盘、17号存储盘和18号存储盘基本已切换到可读态,业务模块继续从16号存储盘、17号存储盘和18号存储盘读取第二子数据。在读取第二子数据后,22号存储盘、23号存储盘和24号存储盘基本已切换到可读态,业务模块继续从22号存储盘、23号存储盘和24号存储盘读取第三子数据。在读取第三子数据后,28号存储盘、29号存储盘和30号存储盘基本已切换到可读态,业务模块继续从28号存储盘、29号存储盘和30号存储盘读取第四子数据。这样,待处理数据即可读成功。
上述业务模块和管理模块执行的步骤均可视为处理节点的处理模块执行的步骤。
本申请实施例提供的数据处理方法既能降低存储盘的功耗,还能满足数据对时延的要求。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容 易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从上面描述可知,本申请实施例提供的分布式存储系统包括至少一个处理节点。所述至少一个处理节点包括至少一个处理器和至少一个存储器。至少一个存储器,用于存储计算机指令,当所述至少一个处理器调用所述计算机指令时,执行上述数据处理方法。
可选的,上述至少一个处理器和上述至少一个存储器部署于同一处理节点上。
可选的,在至少一个处理节点包括至少两个处理器的情况下,至少两个处理器可以位于同一处理节点中,也可以为位于不同处理节点中,本申请实施例对此不做具体限定。
示例性的,若本申请实施例中的至少一个处理节点包括第一处理器和第二处理器,则第一处理器可以用于接收包括待处理数据的标识的读请求;第二处理器用于响应于第一处理器接收到的读请求,从第一存储盘群中读取第一子数据,并在读取第一子数据后,从第二存储盘群中读取第二子数据。第一处理器和第二处理器可以位于同一处理节点中,也可以为位于不同处理节点中。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机(如上述至少一个处理节点)上运行时,上述方法实施例所示的方法流程被执行。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机(如上述至少一个处理节点)调用该计算机指令时,执行上述方法实施例所示的方法流程。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据终端。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘solid state disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要 而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (13)

  1. 一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括至少一个处理节点和至少两个存储节点,所述至少两个存储节点的存储盘包括至少两个存储盘群,所述至少两个存储盘群配置有至少两个节能态,所述至少一个处理节点上部署有处理模块;所述数据处理方法包括:
    所述处理模块接收包括待处理数据的标识的读请求;其中,所述待处理数据存储于所述至少两个存储节点中,所述待处理数据包括第一子数据和第二子数据;
    所述处理模块根据所述待处理数据的标识,读取所述待处理数据的元数据,以确定第一存储盘群和第二存储盘群,所述第一存储盘群包括所述至少两个存储节点中存储所述第一子数据的存储盘,所述第二存储盘群包括所述至少两个存储节点中存储所述第二子数据的存储盘,所述第一存储盘群配置有第一节能态,所述第二存储盘群配置有第二节能态,所述第一节能态的唤醒时延小于所述第二节能态的唤醒时延;
    所述处理模块从所述第一存储盘群中读取所述第一子数据,并在读取所述第一子数据后,从所述第二存储盘群中读取所述第二子数据。
  2. 根据权利要求1所述的数据处理方法,其特征在于,所述处理模块从所述第一存储盘群中读取所述第一子数据之前,所述数据处理方法还包括:
    所述处理模块根据所述待处理数据的元数据,确定所述第一存储盘群中的第一存储盘组和所述第二存储盘群中的第二存储盘组;其中,所述第一存储盘组所包括的存储盘为所述第一存储盘群中存储所述第一子数据的存储盘,所述第二存储盘组所包括的存储盘为所述第二存储盘群中存储所述第二子数据的存储盘;
    所述处理模块从所述第一存储盘群中读取所述第一子数据,具体包括:
    所述处理模块从所述第一存储盘组中读取所述第一子数据;
    所述处理模块从所述第二存储盘群中读取所述第二子数据,具体包括:
    所述处理模块从所述第二存储盘组中读取所述第二子数据。
  3. 根据权利要求2所述的数据处理方法,其特征在于,所述处理模块确定所述第一存储盘群中的第一存储盘组和所述第二存储盘群中的第二存储盘组之后,所述数据处理方法还包括:
    所述处理模块确定所述第一存储盘组中的存储盘和所述第二存储盘组中的存储盘已被唤醒。
  4. 根据权利要求3所述的数据处理方法,其特征在于,所述处理模块从所述第一存储盘组中读取所述第一子数据之后,所述数据处理方法还包括:
    所述处理模块将所述第一存储盘组中的存储盘置为所述第一节能态;
    所述处理模块从所述第二存储盘组中读取所述第二子数据之后,所述数据处理方法还包括:
    所述处理模块将所述第二存储盘组中的存储盘置为所述第二节能态。
  5. 根据权利要求1-4中任意一项所述的数据处理方法,其特征在于,所述处理模块接收包括待处理数据的标识的读请求之前,所述数据处理方法还包括:
    所述处理模块接收包括所述待处理数据的写请求;
    响应于所述写请求,所述处理模块将所述待处理数据切分为所述第一子数据和所 述第二子数据,所述第一子数据的访问顺序位于所述第二子数据的访问顺序之前;
    所述处理模块将所述第一子数据存储于所述第一存储盘群中,并将所述第二子数据存储于所述第二存储盘群中。
  6. 根据权利要求5所述的数据处理方法,其特征在于,所述处理模块将所述待处理数据切分为所述第一子数据和所述第二子数据,具体包括:
    所述处理模块根据所述第一节能态的唤醒时延、所述第二节能态的唤醒时延和访问带宽,计算所述第一子数据的大小,并确定所述第一子数据,所述第一节能态的唤醒时延和所述第二节能态的唤醒时延均为预先设置的;
    所述处理模块根据所述待处理数据的大小以及所述第一子数据的大小,计算所述第二子数据的大小,并确定所述第二子数据。
  7. 根据权利要求5或6所述的数据处理方法,其特征在于,所述处理模块将所述第一子数据存储于所述第一存储盘群中,并将所述第二子数据存储于所述第二存储盘群中,具体包括:
    所述处理模块将所述第一子数据存储于所述第一存储盘组,并将所述第二子数据存储于所述第二存储盘组;
    所述数据处理方法还包括:
    在所述第一存储盘组中存储盘的剩余存储空间为零时,所述处理模块将所述第一存储盘组的存储盘置为所述第一节能态;
    在所述第二存储盘组中存储盘的剩余存储空间为零时,所述处理模块将所述第二存储盘组的存储盘置为所述第二节能态。
  8. 一种分布式存储系统,其特征在于,所述分布式存储系统包括至少一个处理节点和至少两个存储节点,所述至少两个存储节点的存储盘包括至少两个存储盘群,所述至少两个存储盘群配置有至少两个节能态,所述至少一个处理节点上部署有处理模块,所述处理模块用于执行上述权利要求1-7中任意一项所述的数据处理方法。
  9. 一种分布式存储系统,其特征在于,所述分布式存储系统包括至少两个存储节点,所述至少两个存储节点的存储盘包括至少两个存储盘群,其中,所述至少两个存储盘群中的第一存储盘群处于第一节能态,所述至少两个存储盘群中的第二存储盘群处于第二节能态,所述第一节能态的唤醒时延小于所述第二节能态的唤醒时延;
    所述至少两个存储盘群存储待处理数据,所述待处理数据包括第一子数据和第二子数据;
    所述第一存储盘群存储所述第一子数据,所述第二存储盘群存储所述第二子数据。
  10. 根据权利要求9所述的分布式存储系统,其特征在于,所述分布式存储系统还包括至少一个处理节点,所述至少一个处理节点存储有所述待处理数据的元数据,所述待处理数据的元数据中记录有所述第一存储盘群与所述第一子数据的对应关系、以及所述第二存储盘群与所述第二子数据的对应关系。
  11. 一种分布式存储系统,其特征在于,所述分布式存储系统包括至少一个处理节点,每个处理节点包括至少一个处理器和至少一个存储器;所述至少一个存储器,用于存储计算机指令,当所述至少一个处理器调用所述计算机指令时,执行上述权利要求1-7中任意一项所述的数据处理方法。
  12. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令在计算机上运行时,使得如权利要求1-7中任意一项所述的数据处理方法被执行。
  13. 一种包含指令的计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在计算机上运行时,使得如权利要求1-7中任意一项所述的数据处理方法被执行。
PCT/CN2019/105703 2018-10-26 2019-09-12 一种数据处理方法及分布式存储系统 WO2020082929A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19876171.0A EP3859538A4 (en) 2018-10-26 2019-09-12 DATA PROCESSING METHOD AND DISTRIBUTED STORAGE SYSTEM
US17/238,709 US11662925B2 (en) 2018-10-26 2021-04-23 Data processing method and distributed storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811260310.1 2018-10-26
CN201811260310.1A CN111104048B (zh) 2018-10-26 2018-10-26 一种数据处理方法及分布式存储系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/238,709 Continuation US11662925B2 (en) 2018-10-26 2021-04-23 Data processing method and distributed storage system

Publications (1)

Publication Number Publication Date
WO2020082929A1 true WO2020082929A1 (zh) 2020-04-30

Family

ID=70331292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/105703 WO2020082929A1 (zh) 2018-10-26 2019-09-12 一种数据处理方法及分布式存储系统

Country Status (4)

Country Link
US (1) US11662925B2 (zh)
EP (1) EP3859538A4 (zh)
CN (1) CN111104048B (zh)
WO (1) WO2020082929A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687766A (zh) * 2020-05-19 2021-11-23 中移动信息技术有限公司 数据存储的方法、装置、设备及存储介质
CN112612414B (zh) * 2020-12-18 2022-06-17 杭州前云数据技术有限公司 基于微处理器系统调度实现冷数据分布式存储系统
CN113568570B (zh) * 2021-06-22 2024-04-12 阿里巴巴创新公司 数据处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008075A (zh) * 2014-05-26 2014-08-27 华中科技大学 一种分布式存储系统请求的处理方法
US20150112951A1 (en) * 2013-10-23 2015-04-23 Netapp, Inc. Data management in distributed file systems
CN104573119A (zh) * 2015-02-05 2015-04-29 重庆大学 云计算中面向节能的Hadoop分布式文件系统存储策略
US9081687B2 (en) * 2007-12-28 2015-07-14 Intel Corporation Method and apparatus for MONITOR and MWAIT in a distributed cache architecture
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567891B2 (en) * 2001-03-14 2003-05-20 Hewlett-Packard Development Company, L.P. Methods and arrangements for improved stripe-based processing
US7188236B2 (en) * 2004-01-09 2007-03-06 Dell Products L.P. Method for using a timer based SMI for system configuration after a resume event
US9348405B2 (en) * 2013-12-24 2016-05-24 Intel Corporation Systems and techniques for control of storage device power states
CN105701028B (zh) * 2014-11-28 2018-10-09 国际商业机器公司 分布式存储系统中的磁盘管理方法和设备
CN104536904B (zh) * 2014-12-29 2018-01-09 杭州华为数字技术有限公司 一种数据管理的方法、设备与系统
CN105892947B (zh) * 2016-03-31 2019-01-22 华中科技大学 一种节能存储系统的ssd与hdd混合缓存管理方法及系统
CN106156331A (zh) * 2016-07-06 2016-11-23 益佳科技(北京)有限责任公司 冷热温数据服务器系统及其处理方法
CN106777342A (zh) * 2017-01-16 2017-05-31 湖南大学 一种基于可靠性的高性能文件系统混合节能存储系统及方法
CN107632784A (zh) * 2017-09-14 2018-01-26 郑州云海信息技术有限公司 一种存储介质和分布式存储系统的缓存方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081687B2 (en) * 2007-12-28 2015-07-14 Intel Corporation Method and apparatus for MONITOR and MWAIT in a distributed cache architecture
US20150112951A1 (en) * 2013-10-23 2015-04-23 Netapp, Inc. Data management in distributed file systems
CN104008075A (zh) * 2014-05-26 2014-08-27 华中科技大学 一种分布式存储系统请求的处理方法
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
CN104573119A (zh) * 2015-02-05 2015-04-29 重庆大学 云计算中面向节能的Hadoop分布式文件系统存储策略

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3859538A4 *

Also Published As

Publication number Publication date
CN111104048B (zh) 2021-02-12
EP3859538A1 (en) 2021-08-04
EP3859538A4 (en) 2022-05-04
US11662925B2 (en) 2023-05-30
US20210240374A1 (en) 2021-08-05
CN111104048A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
EP3242185B1 (en) Server rack power management
JP5961218B2 (ja) ストレージ・クラスタにおける適応的な電力節約の方法
US9110669B2 (en) Power management of a storage device including multiple processing cores
US7793042B2 (en) System, method, and module for reducing power states for storage devices and associated logical volumes
EP1605455B1 (en) RAID with high power and low power disk drives
US8572416B2 (en) Low power computer with main and auxiliary processors
WO2020082929A1 (zh) 一种数据处理方法及分布式存储系统
TWI585675B (zh) 磁碟驅動器速度管理方法與系統及其相關非暫態電腦可讀取存取媒體
WO2015062316A1 (zh) 一种休眠磁盘的数据操作方法和装置
TWI501588B (zh) 使用輔助處理器存取本地儲存裝置之技術
KR101438461B1 (ko) 전력 제어 스위칭 모듈을 구비한 클라우드 스토리지 시스템
KR101706088B1 (ko) Ssd 제어기에서의 프로세서 스위칭 방법 및 장치
TWI522797B (zh) 容錯與節能分散式儲存系統及方法
KR20140047831A (ko) 저전력 클라우드 스토리지 시스템

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: 19876171

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019876171

Country of ref document: EP

Effective date: 20210526