CN103838521B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN103838521B CN103838521B CN201410073208.6A CN201410073208A CN103838521B CN 103838521 B CN103838521 B CN 103838521B CN 201410073208 A CN201410073208 A CN 201410073208A CN 103838521 B CN103838521 B CN 103838521B
- Authority
- CN
- China
- Prior art keywords
- data
- hard disk
- disk groups
- log area
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 222
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000003860 storage Methods 0.000 claims abstract description 216
- 238000000034 method Methods 0.000 abstract description 50
- 230000008569 process Effects 0.000 abstract description 26
- 230000002688 persistence Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 95
- 230000005611 electricity Effects 0.000 description 19
- 238000005192 partition Methods 0.000 description 12
- 238000012163 sequencing technique Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000000926 separation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007430 reference method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种数据处理方法及装置,涉及存储技术领域,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。具体方案为:若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区。本发明用于数据的读写过程中。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着处理器工艺的快速发展,现有存储***不足以匹配经过快速发展的处理器***,造成存储工艺的瓶颈现象日益突出。其中,存储工艺发展的瓶颈现象主要体现在两个方面:存储***中数据的写入和读取速度较低。
现有技术中,提高存储***中数据的写入和读取速度,可以采用全内存的方式进行数据的写入和读取。具体的,在接收到数据写入命令后,将待写入的数据写入动态随机存取存储器(Dynamic Random Access Memory,DRAM),以便于在接收到数据读取中命令后可以直接从DRAM中读取相应的数据;并将待写入的数据写入非易失性存储器(Non-VolatileMemory,NVM),然后在将写入NVM的数据一一写入硬盘的日志区,并在向硬盘的日志区写数据的同时,整理硬盘的日志区的数据,然后将整理后的数据写入硬盘的数据区。在上述过程中,可以实现从硬盘中读数据和向硬盘写数据的分离,提高数据的读写速度。
在现有技术向硬盘中写数据的过程中,针对一个硬盘往往同时执行:向该硬盘的日志区中写从NVM中读取的数据,以及整理该硬盘的日志区中已写入的数据,并将已整理数据写入该硬盘的数据区。而采用上述写数据的方法是无法同时兼顾从NVM向该硬盘的日志区写数据的速度和整理该硬盘的日志区中已写入数据的速度的。
具体的,若要保证向该硬盘的日志区写数据的速度,则可能会牺牲数据的整理速度,若要保证数据的整理速度,则可能会牺牲向该硬盘的日志区写数据的速度,数据处理过程中每秒进行读写操作的次数(Input/Output Operations Per Second,IOPS)性能较差。
发明内容
本发明的实施例提供一种数据处理方法及装置,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种数据处理方法,包括:
若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;
根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
结合第一方面,在一种可能的实现方式中,所述第一数据区为所述第二硬盘组的数据区;所述第二数据区为所述第一硬盘组的数据区。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一数据区为第三硬盘组的数据区;所述第二数据区为所述第三硬盘组的数据区。
结合第一方面和上述任意一种可能的实现方式,在另一种可能的实现方式中,所述第一硬盘组包含日志区和数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据;
所述第二硬盘组包含日志区和数据区;
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
结合第一方面和上述任意一种可能的实现方式,在另一种可能的实现方式中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
本发明实施例的第二方面,还提供一种数据处理装置,包括:
第一判断单元,用于判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值;
第一写入单元,用于若所述第一判断单元确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;
第一整理单元,用于若所述第一判断单元确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
结合第二方面,在一种可能的实现方式中,所述第一数据区为所述第二硬盘组的数据区;所述第二数据区为所述第一硬盘组的数据区。
结合第二方面和上述任意一种可能的实现方式,在另一种可能的实现方式中,所述第一数据区为第三硬盘组的数据区;所述第二数据区为所述第三硬盘组的数据区。
结合第二方面和上述任意一种可能的实现方式,在另一种可能的实现方式中,所述第一硬盘组包含日志区和数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据;
所述第二硬盘组包含日志区和数据区;
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
结合第二方面和上述任意一种可能的实现方式,在另一种可能的实现方式中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
本发明实施例的第三方面,还提供一种数据处理装置,包括:
处理器,用于若所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
结合第三方面,在一种可能的实现方式中,所述第一数据区为所述第二硬盘组的数据区;所述第二数据区为所述第一硬盘组的数据区。
结合第三方面和上述可能的实现方式中,在另一种可能的实现方式中,所述第一数据区为第三硬盘组的数据区;所述第二数据区为所述第三硬盘组的数据区。
结合第三方面和上述可能的实现方式中,在另一种可能的实现方式中,所述第一硬盘组包含日志区和数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据;
所述第二硬盘组包含日志区和数据区;
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
结合第三方面和上述可能的实现方式中,在另一种可能的实现方式中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
本发明实施例提供的数据处理方法及装置,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的一种数据处理方法流程图;
图2为本发明实施例2中的一种数据处理方法流程图;
图3为本发明实施例3中的一种数据处理方法流程图;
图4为本发明实施例4中的一种数据处理装置的组成示意图;
图5为本发明实施例4中的另一种数据处理装置的组成示意图;
图6为本发明实施例中的一种数据处理***的组成示意图;
图7为本发明实施例中的另一种数据处理***的组成示意图;
图8为本发明实施例2中的一种数据处理方法示意图;
图9为本发明实施例3中的一种数据处理方法示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例1
本发明实施例提供一种数据处理方法,如图1所示,包括:
S101、若第一硬盘组的日志区的日志空间已用量高于预设阈值,数据处理装置则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区。
其中,已写入第二硬盘组的日志区中的数据包括第一数据。
需要说明的是,本发明实施例中的数据处理装置可以为数据库中的一个数据控制模块或者数据处理模块,用于控制数据库中数据的写入和读出。例如,数据控制模块可以为计算机的中央处理器(Central Processing Unit,CPU)。
具体的,本发明实施例中的内存可以包括第一内存单元和第二内存单元。数据处理装置可以从内存中的第一内存单元中读取第一数据和第一数据的特征值,并将从第一内存单元中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区。
示例性的,本发明实施例的一种应用场景中,第一内存单元可以包括至少一个非易失性存储器(Non-Volatile Memory,NVM);第二内存单元可以包括至少一个动态随机存取存储器(Dynamic Random Access Memory,DRAM)。其中,NVM的存储速度和每秒进行读写操作的次数(Input/Output Operations Per Second,IOPS)大于普通硬盘,支持断电保护。DRAM是一种易失性存储器,是一种不支持断电保护的内存,DRAM的存储速度和IOPS远大于普通硬盘,略高于NVM)。
需要说明的是,第一内存单元中的第一数据为数据处理装置根据数据写入命令写入第一内存单元的。
具体的,数据处理装置可以在接收到包含待写入数据和所述待写入数据的特征值的数据写入命令后,同时执行步骤一和步骤二。其中,步骤一:根据待写入数据的特征值中包含的待写入数据的写地址信息将待写入数据写入第二内存单元(DRAM);步骤二:将待写入数据和待写入数据的特征值写入第一内存单元(NVM)。
其中,一方面由于DRAM的存储速度和IOPS远大于普通硬盘,并且略高于NVM,而数据处理装置在接收到数据写入命令后,将数据写入命令所包含的数据写入了第二内存单元,因此,数据处理装置在接收到数据读取命令后,可以直接从第二内存单元中读取相应的数据,可以提高数据读取速度。另一方面由于NVM是一种支持断电保护的内存,并且NVM的存储速度和IOPS大于普通硬盘,因此,数据处理装置在接收到数据写入命令后,将数据写入命令所包含的数据写入了第一内存单元,然后在将写入第一内存单元的数据一一写入硬盘空间,可以提高数据的写入速度。即第一内存单元中的数据用于写入硬盘组(第一硬盘组和第二硬盘组),第二内存单元中的数据用于提供数据读取命令所要求读取的数据,实现了数据读写的分离。
具体的,在数据处理装置从第一内存单元中读取待写入数据和待写入数据的特征值之前,本发明实施例的方法还可以包括:数据处理装置将至少两个硬盘划分至至少两个硬盘组。
需要说明的是,所述硬盘组依据功能划分可以包括至少一个写数据盘组(DiskGroup for Write,DGW)和读数据盘组(Disk Group for Read,DGR),所述DGW用于接收从所述第一内存单元写入的数据,所述DGR用于接受对已写入所述DGR功能的硬盘组数据的整理。
并且,为了防止由于硬盘损坏导致数据丢失,每一个硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
具体的,在本发明实施例的第一种应用场景中,数据处理装置可以将硬盘空间中的至少两个硬盘划分至两个硬盘组:第一硬盘组和第二硬盘组。
其中,在这种应用场景中,第一硬盘组包含日志区和数据区,第一硬盘组包含至少一个硬盘;第二硬盘组包含日志区和数据区,第二硬盘组包含至少一个硬盘。
进一步可选的,第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
在本发明实施例的第二种应用场景中,数据处理装置可以将硬盘空间中的至少三个硬盘划分至三个硬盘组:第一硬盘组、第二硬盘组和第三硬盘组。
其中,在第二种应用场景中,第一硬盘组仅包含日志区,第二硬盘组仅包含日志区,第三硬盘组仅包含数据区。第一硬盘组包含至少一个硬盘,第二硬盘组包含至少一个硬盘,第三硬盘组包含至少一个硬盘。
进一步可选的,第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第三硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
需要说明的是,当数据处理装置判断得到第一硬盘组的日志区的日志空间已用量高于预设阈值时,可以将从第一内存单元中读取的第一数据和第一数据的特征值,写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区。此时,数据处理装置并不整理第二硬盘组的日志区中的已写入的数据,而是针对第一硬盘组仅执行:根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区。
其中,第一数据为待写入数据中的一个数据或者一组数据,待写入数据为数据处理装置在接收到数据写入命令后,写入到内存(具体为内存中的第一内存单元)中的数据。
需要说明的是,在本发明实施例的第一种应用场景中,第一数据区为第二硬盘组的数据区。
在本发明实施例的第二种应用场景中,第一数据区为第三硬盘组的数据区。
具体的,第一数据的特征值包含:第一数据的写地址信息和第一数据的大小信息。
S102、数据处理装置根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为述内存中读取的数据。
相应的,在本发明实施例中,数据处理装置可以在第一硬盘组的日志区的日志空间已用量高于预设阈值时,根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区。此时,数据处理装置针对第一硬盘组仅执行:将已写入第一硬盘组的日志区中的数据整理至第二数据区。
需要说明的是,在本发明实施例的第一种应用场景中,第二数据区为第一硬盘组的数据区。
在本发明实施例的第二种应用场景中,第二数据区为第三硬盘组的数据区。
本发明实施例提供的数据处理方法,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
实施例2
本发明实施例提供一种数据处理方法,以两个硬盘组(第一硬盘组和第二硬盘组的数据区)分别进行日志写和数据整理为例,在本实施例中,如图6所示,第一硬盘组包含日志区和数据区,第二硬盘组包含日志区和数据区;第一数据区为第二硬盘组的数据区,第二数据区为第一硬盘组的数据区;如图2所示,本实施例的方法可以包括:
S201、数据处理装置将待写入的数据写入内存的流程。
需要说明的是,本发明实施例中的内存可以包括:第一内存单元和第二内存单元。其中,第一内存单元和第二内存单元的具体描述可以参考本发明实施例1中的相关内容,本实施例这里不再赘述。
示例性的,本发明实施例中的第一内存单元可以由至少一个NVM组成,第二内存单元可以由至少一个DRAM。
具体的,S201可以包括:S201a-S201c:
S201a、数据处理装置接收数据写入命令。
其中,数据写入命令中包含待写入的数据和待写入的数据的特征值,待写入的数据的特征值包含:待写入的数据的写地址信息和待写入的数据的大小信息。
数据处理装置可以接收来自读写(Input/Ouput,I/O)接口的数据写入命令,数据写入命令用于指示数据处理装置:将该数据写入命令中包含的待写入的数据写入该待写入的数据的写地址信息所指示的硬盘相应的位置。
S201b、数据处理装置在接收到数据写入命令后,将数据写入命令中包含的待写入的数据写入第二内存单元。
其中,本发明实施例中的第二内存单元为DRAM,第一内存单元为NVM。由于DRAM是一种易失性存储器,是一种不支持断电保护的内存,DRAM的存储速度和IOPS远大于普通硬盘,略高于NVM。因此,为了提高数据处理装置在接收到数据读取命令后,读取数据的速度,数据处理装置可以在接收到数据写入命令后,根据待写入的数据的写位置信息将数据写入命令中包含的待写入的数据写入第二内存单元,以便于数据处理装置在接收到数据读取命令后,可以直接从第二内存单元中读取相应的数据,提高数据读取速度。
需要说明的是,待写入的数据的写位置信息具体可以为待写入的数据的块号。即本发明实施例中的第一数据的写位置信息可以为第一数据的块号;第二数据的写位置信息可以为第二数据的块号。
S201c、数据处理装置将待写入数据和待写入数据的特征值写入第一内存单元。
其中,在数据处理装置将待写入数据和待写入数据的特征值写入第一内存单元之后,本发明实施例中,数据处理装置从第一内存单元读取的待写入数据可以称作第一数据、第二数据和第三数据等,即第一数据和第二数据均为待写入数据中的一个数据或者一组数据。
具体的,第一内存单元中的数据用于写入硬盘组,第二内存单元中的数据用于提供数据读取命令所要求读取的数据,实现了数据读写的分离。
需要说明的是,数据处理装置写入第二内存单元的数据仅包含待写入的数据,数据处理装置写入第一内存单元的数据包含待写入的数据和待写入数据的特征值(待写入的数据的大小信息和待写入的数据的写地址信息)。
需要说明的是,在执行S201a之后,本发明实施例对S201b和S201c执行的先后顺序不做限制。在本发明实施例中可以先执行S201b,再执行S201c;也可以先执行S201c,再执行S201b;还可以同时执行S201b和S201c。
S202、数据处理装置进行硬盘分组及硬盘组功能初始化的流程。
S202a、数据处理装置将硬盘空间中的至少两个硬盘划分至第一硬盘组和第二硬盘组。
其中,第一硬盘组中包含至少一个硬盘;第二硬盘组中包含至少一个硬盘。
硬盘组依据功能划分可以包括至少一个所述DGW功能的硬盘组和所述DGR功能的硬盘组,DGW功能的硬盘组用于接收从所述第一内存单元写入的数据,DGR功能的硬盘组用于接受对已写入所述DGR功能的硬盘组的数据的整理。
进一步可选的,为了防止由于硬盘损坏导致数据丢失,每一个硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。具体的,第一硬盘组中包括至少两个硬盘,所述第一硬盘组中的两个硬盘互为镜像硬盘;所述第二硬盘组中包括至少两个硬盘,所述第二硬盘组中的两个硬盘互为镜像硬盘。
其中,在进行硬盘组功能初始化时,数据处理装置可以确定第一硬盘组为DGW功能的硬盘组,确定第二硬盘组为DGR功能的硬盘组。具体的,S202包括S202b:
S202b、数据处理装置从第一内存单元中读取第三数据和第三数据的特征值。
其中,第三数据与本发明实施例中的第一数据和第二数据类似,均为已写入第一内存单元中的待写入数据中的一个数据或者一组数据。数据处理装置可以按照待写入数据写入第一内存单元的先后顺序,依次从第一内存单元中读取数据。
需要说明的是,本发明实施例中数据处理装置在将多个硬盘划分至不同的硬盘组,并且确定各个硬盘组的功能时,必须保证上述至少两个硬盘组中包含一个DGW。
示例性的,若数据处理装置确定数据处理***中包含4个硬盘,则数据处理装置可以将者四个硬盘划分为两个硬盘组,每一个硬盘组中包含2个硬盘,则其中的一个硬盘组可以作为DGW功能的硬盘组,另一个硬盘组则可以作为DGR功能的硬盘组(当前的DGW功能的硬盘组的日志区的日志空间已用量高于预设阈值时,这两个硬盘组可以切换其硬盘组的功能,即当前的DGW功能的硬盘组切换为DGR功能的硬盘组,当前的DGR功能的硬盘组切换为DGW功能的硬盘组)。此时,第一硬盘组可以为DGW功能的硬盘组,第二硬盘组则可以为DG功能的硬盘组R,第一硬盘组和第二硬盘组可以分别为一个硬盘组。
当然,第一硬盘组和第二硬盘组中所包含的硬盘也可以不同,如若数据处理装置确定数据处理***中包含8个硬盘,第一硬盘组中可以包含3个硬盘,第二硬盘组中可以包含5个硬盘。
其中,数据处理装置可以通过统计数据处理装置向硬盘组的日志区写数据的速度和数据处理装置整理已写入硬盘组的日志区的数据的速度,并根据统计得到的写数据的速度和整理数据的速度分别确定DGW功能的硬盘组和DGR功能的硬盘组中硬盘的个数。数据处理装置确定DGW功能的硬盘组和DGR功能的硬盘组中硬盘的个数的具体方法可以参考现有技术中的相关描述,本发明实施例这里不再赘述。
其中,由于第一硬盘组的日志区和第二硬盘组的日志区在进行硬盘组初始化时,可能还未写入任何数据,因此,假设数据处理装置确定第一硬盘组为DGW功能的硬盘组,第二硬盘组为DGR功能的硬盘组后,可以首先将读取到的第二数据和第二数据的特征值写入第一硬盘组的日志区,即S202还包括S202c:
S202c、数据处理装置将第三数据和第三数据的特征值写入第一硬盘组的日志区。
具体的,由于数据处理装置在功能初始化设置时,将第一硬盘组作为DGW功能的硬盘组,将第二硬盘组作为DGR功能的硬盘组,因此,数据处理装置在从第一内存单元中读取到第二数据和第二数据的特征值之后,可以将读取到的第三数据和第三数据的特征值写入第一硬盘组的日志区。此时,数据处理装置并不整理已写入第一硬盘组的日志区的数据,仅仅对第一硬盘组的日志区进行数据的写入,数据的纯净写入可以提高数据的写入速度。
以下为数据处理装置将内存(第一内存单元)中的数据写入硬盘组的日志区,并整理已写入硬盘组的日志区中的第一数据的流程。
S203、数据处理装置从第一内存单元中读取第一数据和第一数据的特征值。
其中,由于第一内存单元NVM中写入的第一数据用于存储至硬盘组中,因此,数据处理装置在硬盘组进行功能初始化之后,可以从第一内存单元中读取第一数据。
S204、数据处理装置判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值。
其中,由于数据处理装置在执行:将第三数据和第三数据的特征值写入第一硬盘组的日志区之后,第一硬盘组的日志区中写入的第一数据的数据量可能会超过一定的阈值,而此时第二硬盘组的日志区中还未写入任何的数据,此时若继续将读取到的数据写入第一硬盘组的日志区,则可能会导致第一硬盘组的日志区中的存储空间不足,不能够继续写入数据,导致数据的写入无法正常进行,因此,数据处理装置可以实时判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值,并在第一硬盘组的日志区的日志空间已用量高于预设阈值时,对第一硬盘组和第二硬盘组进行功能切换,确定第一硬盘组为DGR功能的硬盘组,确定第二硬盘组为DGW功能的硬盘组。即执行S205-S206:
具体的,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则执行S205-S206;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第一数据和第一数据的特征值继续写入第一硬盘组的日志区,即执行与S202c类似的步骤:数据处理装置将第一数据和第一数据的特征值写入第一硬盘组的日志区。
S205、数据处理装置将第一数据和第一数据的特征值写入第二硬盘组的日志区。
需要说明的是,由于当前状态下第二硬盘组的日志区中除了刚刚写入的第一数据和第一数据的特征值外不包括任何其他数据,因此数据处理装置并不对已写入第二硬盘组的日志区中数据进行整理。
S206、数据处理装置根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区。
其中,已写入第一硬盘组的日志区中的数据包括第三数据。
需要说明的是,当第一硬盘组的日志区的日志空间已用量高于预设阈值,对第一硬盘组和第二硬盘组进行硬盘组功能切换之后,数据处理装置则需要暂停将读取到的数据(如第一数据)写入第一硬盘组的日志区,仅对第一硬盘组执行:将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区;并且,由于当前状态下第二硬盘组的日志区中除了刚刚写入的第一数据和第一数据的特征值外不包括任何其他数据,数据处理装置并不对已写入第二硬盘组的日志区中数据进行整理,仅向第二硬盘组的日志区中写入第一数据。因此,可以实现数据整理和数据写入的分离,同时提高数据整理和数据写入的速度。
S207、数据处理装置从第一内存单元读取第二数据和第二数据的特征值。
S208、数据处理装置判断第二硬盘组的日志区的日志空间已用量是否高于预设阈值。
具体的,若第二硬盘组的日志区的日志空间已用量高于预设阈值,则执行S209-S210,即对第一硬盘组和第二硬盘组进行功能切换,确定第一硬盘组为DGW功能的硬盘组,确定第二硬盘组为DGR功能的硬盘组;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第二数据和第二数据的特征值继续写入第二硬盘组的日志区,即执行与S205类似的步骤:数据处理装置将第二数据和第二数据的特征值写入第二硬盘组的日志区。
S209、数据处理装置将第二数据和第二数据的特征值写入第一硬盘组的日志区,并暂停将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区,已写入第一硬盘组的日志区中的数据包括第二数据和未整理的第三数据。
S210、数据处理装置根据已写入第二硬盘组的日志区中的数据的特征值,将已写入第二硬盘组的日志区中的数据整理至第二硬盘组的数据区。
其中,已写入第二硬盘组的日志区中的数据为第一内存单元中读取的数据,即已写入第二硬盘组的第一数据。
S211、数据处理装置从第一内存单元读取第四数据和第四数据的特征值。
S212、数据处理装置判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值。
具体的,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则执行S213-S214,即对第一硬盘组和第二硬盘组进行功能切换,确定第二硬盘组为DGW功能的硬盘组,确定第一硬盘组为DGR功能的硬盘组;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第四数据和第四数据的特征值继续写入第一硬盘组的日志区,即执行与S209类似的步骤:数据处理装置将第四数据和第四数据的特征值写入第一硬盘组的日志区。
S213、数据处理装置将第四数据和第四数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第二硬盘组的数据区。
S214、数据处理装置根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区。
进一步可选的,为了减少在***断电后,第一内存单元中未写入硬盘组中的数据的丢失,数据处理装置可以在检测到断电指令后,将第一内存单元中的所有第一数据写入DGW(第一硬盘组或者第二硬盘组)的日志区。本发明实施例的方法还可以包括S215:
S215、数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程。
具体的,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括:S215a和S215b或者S215a和S215c:
S215a、数据处理装置检测断电指令。
其中,数据处理装置在检测到断电指令后,为了防止断电后第一内存单元中的数据的丢失,可以依次从第一内存单元中读取第一内存单元中的所有第一数据,并将读取到的第一数据写入DGW功能的硬盘组日志区。
当第一硬盘组为DGW功能的硬盘组,第二硬盘组为DGR功能的硬盘组时,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括:S215a和S215b:
S215b、数据处理装置在检测到断电指令后,按照第一内存单元中第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的数据写入第一硬盘组的日志区。
当第二硬盘组为DGW功能的硬盘组,第一硬盘组为DGR功能的硬盘组时,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括S215a和S215c:
S215c、数据处理装置在检测到断电指令后,按照第一内存单元中第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的数据写入第二硬盘组的日志区。
进一步的,由于第二内存单元为DRAM为易失性随机存储设备,DRAM是不支持断电保护的内存。因此,在***断电后,若检测到所述上电加载指令,并重新上电加载数据后,第二内存单元中为存储有任何的数据的。此时,若接收到所述数据读取命令后,数据处理装置则需要从硬盘组中读取相应的数据然后返回读取到的数据,数据的读取速度较低,因此,为了提高数据的读取速度,数据处理装置在检测到上电加载指令可以将第一硬盘组的数据区中包含的数据和第二硬盘组的数据区中包含的数据写入第二内存单元。具体的,本发明实施例的方法还可以包括:
S216、数据处理装置执行上电后的数据恢复流程。
其中,S216具体可以包括S216a、S216b、S216c和S216d:
S216a、数据处理装置检测上电加载指令。
S216b、数据处理装置在检测到上电加载指令后,根据已写入第二硬盘组的日志区中的数据的特征值,将已写入第二硬盘组的日志区中的数据整理至第二硬盘组的数据区。
S216c、数据处理装置在检测到上电加载指令后,根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区。
S216d、数据处理装置将第一硬盘组的数据区中包含的数据和第二硬盘组的数据区中包含的数据写入第二内存单元。
进一步可选的,若所述上电加载指令具体为异常断电后的上电加载指令,则在检测到上电加载指令之后,在整理已写入第一硬盘组的日志区中的数据和已写入第二硬盘组的日志区中的数据之前,本发明实施例的方法还可以包括:按照所述第一内存单元中所述第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的第一数据写入第一硬盘组的日志区和第二硬盘组的日志区。
进一步的,由于在S202中数据处理装置在接收到数据写入命令后,可以将数据写入命令中包含的待写入的数据写入第二内存单元;因此,数据处理装置在接收到所述数据读取命令后,可以直接从第二内存单元读取所述待读取的数据,而不中需要从硬盘组中读取数据,数据的读取速度较快,并且可以减少对硬盘组的访问次数。本发明实施例的方法还可以包括S217:
S217、数据处理装置从第二内存单元中读取待读取的数据的流程。
其中,S217具体可以包括S217a和S217b:
S217a、数据处理装置接收数据读取命令,所述数据写入命令中包含待读取的数据的标识。
S217b、数据处理装置在接收到所述数据读取命令后,根据待读取的数据的标识从第二内存单元读取待读取的数据。
需要说明的是,由于数据处理装置在交替进行一下两个流程:1)向第一硬盘组的日志区写入数据;整理第二硬盘组的日志区中已写入的数据,并将整理后的数据写入第二硬盘组的数据区;2)向第二硬盘组的日志区写入数据;整理第一硬盘组的日志区中已写入的数据,并将整理后的数据写入第一硬盘组的数据区。而后在检测到上电加载指令时,数据处理装置会将第一硬盘组的数据区中存储的数据和第二硬盘组的数据区中存储的数据写入第二内存单元,以便于数据处理装置可以直接根据数据读取指令从第二内存单元中读取相应的数据,实现数据读写的分离,提高数据读取速度。
但是,存在的问题是:分别将第一硬盘组的数据区中存储的数据和第二硬盘组的数据区中存储的数据写入第二内存单元,可能会存在第一硬盘组的数据区中存储的数据与第二硬盘组的数据区中存储的数据的重复,而数据处理装置不能够判定哪一个硬盘组的数据区中存储的数据是最新的数据,因此,数据处理装置可以在将读取到的数据写入第一硬盘组的日志区时,确定数据的版本信息,然后在将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区时,更新整理至第一硬盘组的数据区中的数据的版本信息;在将读取到的数据写入第二硬盘组的日志区时,确定数据的版本信息,然后在将已写入第二硬盘组的日志区中的数据整理至第二硬盘组的数据区时,更新整理至第二硬盘组的数据区中的数据的版本信息。其中,数据处理装置可以根据数据的写地址信息确定数据的版本信息。
示例性的,若待写入的数据a的写地址信息a所对应的硬盘地址当前已写入的数据的版本信息为版本2,待写入的数据b写地址信息b所对应的硬盘地址当前已写入的数据的版本信息为版本8;则当数据处理装置接收到的第一数据中包含待写入的数据a、待写入的数据a的写地址信息a和待写入的数据b、待写入的数据b的写地址信息b时,数据处理装置则可以确定将要写入写地址信息a的数据(待写入的数据a)的版本信息为版本3;确定将要写入写地址信息b的数据(待写入的数据b)的版本信息为版本9。
例如,本发明实施例中以数据处理装置执行:步骤a和步骤b为例,说明数据处理装置具体执行纯净的数据写和数据整理的过程。其中步骤a为:将从内存(第一内存单元)中读取到的数据和数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第二硬盘组的数据区;步骤b为:根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第一硬盘组的数据区。
如图8所示,在本实例中采用小写字母表示数据本身,采用普通的***数据表示数据的写地址信息(如,数据的块号),采用粗体的***数据表示数据的版本信息。例如,在处理中的写请求的数据d的块号为9、数据b的块号为2以及数据c的块号为8等;在第二硬盘组的数据区中的数据h的块号为11,版本信息为7,该版本信息表示数据h第7次写入硬盘。其中。数据的版本信息用于表示该数据写入硬盘空间(包括第二硬盘组和第一硬盘组)的总次数。
如图8所示,数据处理装置可以根据已写入第一硬盘组的日志区中的数据的块号,将该数据写入第一硬盘组的数据区中相应块号所对应的地址中。如,已写入第一硬盘组的日志区中的数据r的块号为4,并且已确定其版本信息为3,则数据处理装置可以将已写入第一硬盘组的日志区中的数据r写入第一硬盘组的数据区中块号为4的地址空间,并且将其版本信息更新为3;已写入第一硬盘组的日志区中的数据p的块号为2,并且已确定其版本信息为8,则数据处理装置可以将已写入第一硬盘组的日志区中的数据p写入第一硬盘组的数据区中块号为2的地址空间,并且将其版本信息更新为8。其中,当数据的版本信息大于1时,则该数据的块号所对应的地址空间中不是第一次写入数据,则数据处理装置可以采用该数据替换第一硬盘组的数据区中该数据的块号所对应的地址空间中已存储的数据。
本发明实施例提供的数据处理方法,若第一硬盘组的日志区的日志空间已用量高于预设阈值,数据处理装置则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
实施例3
本发明实施例提供一种数据处理方法,以两个硬盘组(第一硬盘组和第二硬盘组)分别进行日志写和数据整理,另一个硬盘组(第三硬盘组)存储从上述两个硬盘组整理得到的数据为例,在本发明实施例中,如图7所示,第一硬盘组仅包含日志区,第二硬盘组仅包含日志区;第一数据区和第二数据区均为第三硬盘组的数据区;如图3所示,本实施例的方法可以包括:
S301、数据处理装置将待写入的数据写入内存的流程。
需要说明的是,本发明实施例中的内存可以包括:第一内存单元(如NVM)和第二内存单元(如DRAM)。其中,第一内存单元和第二内存单元的具体描述可以参考本发明实施例1中的相关内容,本实施例这里不再赘述。
具体的,S301可以包括:S301a-S301c:
S301a、数据处理装置接收数据写入命令。
其中,数据写入命令中包含待写入的数据和待写入的数据的特征值,待写入的数据的特征值包含:待写入的数据的写地址信息和待写入的数据的大小信息。
数据处理装置可以接收来自I/O接口的数据写入命令,数据写入命令用于指示数据处理装置将该数据写入命令中包含的待写入的数据写入该数据写入命令中包含的待写入的数据的特征值中的待写入的数据的写地址信息所指示的硬盘相应的位置。
S301b、数据处理装置在接收到数据写入命令后,将数据写入命令中包含的待写入的数据写入第二内存单元。
其中,本发明实施例中的第二内存单元为DRAM,第一内存单元为NVM。由于DRAM是一种易失性存储器,是一种不支持断电保护的内存,DRAM的存储速度和IOPS远大于普通硬盘,略高于NVM。因此,为了提高数据处理装置在接收到数据读取命令后,读取数据的速度,数据处理装置可以在接收到数据写入命令后,根据待写入的数据的写位置信息将数据写入命令中包含的待写入的数据写入第二内存单元,以便于数据处理装置在接收到数据读取命令后,可以直接从第二内存单元中读取相应的数据,提高数据读取速度。
需要说明的是,待写入的数据的写位置信息具体可以为待写入的数据的块号。即本发明实施例中的第一数据的写位置信息可以为第一数据的块号;第二数据的写位置信息可以为第二数据的块号。
S301c、数据处理装置将待写入数据和待写入数据的特征值写入第一内存单元。
其中,在数据处理装置将待写入数据和待写入数据的特征值写入第一内存单元之后,本发明实施例中,数据处理装置从第一内存单元读取的待写入数据可以称作第一数据、第二数据和第三数据等,即第一数据和第二数据均为待写入数据中的一个数据或者一组数据。
具体的,第一内存单元中的数据用于写入硬盘组,第二内存单元中的数据用于提供数据读取命令所要求读取的数据,实现了数据读写的分离。
需要说明的是,数据处理装置写入第二内存单元的数据仅包含待写入的数据,数据处理装置写入第一内存单元的数据包含待写入的数据和待写入数据的特征值(待写入的数据的大小信息和待写入的数据的写地址信息)。
需要说明的是,在执行S301a之后,本发明实施例对S301b和S301c执行的先后顺序不做限制。在本发明实施例中可以先执行S301b,再执行S301c;也可以先执行S301c,再执行S301b;还可以同时执行S301b和S301c。
S302、数据处理装置进行硬盘分组及硬盘组功能初始化的流程。
具体的,S302具体可以包括S303a-S303b:
S302a、数据处理装置将硬盘空间中的至少三个硬盘划分至第一硬盘组、第二硬盘组和第三硬盘组。
其中,第一硬盘组中包含至少一个硬盘;第二硬盘组中包含至少一个硬盘;第三硬盘组中包含至少一个硬盘。
硬盘组依据功能划分可以包括一个DGW功能的硬盘组、一个DGR功能的硬盘组和一个用于存储从上述两个硬盘组中整理得到的数据的硬盘组,所述DGW用于接收从所述第一内存单元写入的数据,所述DGR用于接受对已写入DGR功能的硬盘组数据的整理。
进一步可选的,为了防止由于硬盘损坏导致数据丢失,每一个硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。具体的,第一硬盘组中包括至少两个硬盘,所述第一硬盘组中的两个硬盘互为镜像硬盘;所述第二硬盘组中包括至少两个硬盘,所述第二硬盘组中的两个硬盘互为镜像硬盘;所述第三硬盘组中包括至少两个硬盘,所述第三硬盘组中的两个硬盘互为镜像硬盘。
S302b、数据处理装置从第一内存单元中读取第三数据和第三数据的特征值。
其中,第三数据与本发明实施例中的第一数据和第二数据类似,均为已写入第一内存单元中的待写入数据中的一个数据或者一组数据。数据处理装置可以按照待写入数据写入第一内存单元的先后顺序,依次从第一内存单元中读取数据。
其中,所述日志区用于存储从所述第一内存单元中读取的所述第一数据。
示例性的,若数据处理装置确定数据处理***中包含6个硬盘,则数据处理装置可以将者6个硬盘划分为3个硬盘组,每一个硬盘组中包含2个硬盘,则其中的一个硬盘组可以作为DGW,另一个硬盘组则可以作为DGR功能的硬盘组(当前的DGW功能的硬盘组的日志区的日志空间已用量高于预设阈值时,这两个硬盘组可以切换其硬盘组的功能,即当前的DGW功能的硬盘组切换为DGR功能的硬盘组,当前的DGR功能的硬盘组切换为DGW功能的硬盘组),第三个硬盘组则可以作为包含数据区的硬盘组。此时,第一硬盘组可以为DGW功能的硬盘组,第二硬盘组则可以为DGR功能的硬盘组,第三硬盘组可以包含数据区的硬盘组。
当然,第一硬盘组、第二硬盘组和第三硬盘组中所包含的硬盘也可以不同,如若数据处理装置确定数据处理***中包含9个硬盘,第一硬盘组中可以包含2个硬盘,第二硬盘组中可以包含3个硬盘,而第三硬盘组中可以包含4个硬盘。
其中,数据处理装置可以通过统计数据处理装置向硬盘组的日志区写数据的速度和数据处理装置整理已写入硬盘组的日志区的数据的速度,并根据统计得到的写数据的速度和整理数据的速度分别确定DGW功能的硬盘组和DGR功能的硬盘组中硬盘的个数。数据处理装置确定DGW功能的硬盘组和DGR功能的硬盘组中硬盘的个数的具体方法可以参考现有技术中的相关描述,本发明实施例这里不再赘述。
其中,由于第一硬盘组的日志区和第二硬盘组的日志区在进行硬盘组初始化时,可能还未写入任何数据,因此,假设数据处理装置确定第一硬盘组为DGW功能的硬盘组,第二硬盘组为DGR功能的硬盘组后,可以首先将读取到的第二数据和第二数据的特征值写入第一硬盘组的日志区,即S302还包括S302c:
S302c、数据处理装置将第三数据和第三数据的特征值写入第一硬盘组的日志区。
具体的,由于数据处理装置在功能初始化设置时,将第一硬盘组作为DGW功能的硬盘组,将第二硬盘组作为DGR功能的硬盘组,因此,数据处理装置在从第一内存单元中读取到第二数据和第二数据的特征值之后,可以将读取到的第三数据和第三数据的特征值写入第一硬盘组的日志区。此时,数据处理装置并不整理已写入第一硬盘组的日志区的数据,仅仅对第一硬盘组的日志区进行数据的写入,数据的纯净写入可以提高数据的写入速度。
以下为数据处理装置将内存(第一内存单元)中的数据写入硬盘组的日志区,并整理已写入硬盘组的日志区中的第一数据的流程。
S303、数据处理装置从第一内存单元中读取第一数据和第一数据的特征值。
其中,由于第一内存单元NVM中写入的第一数据用于存储至硬盘组中,因此,数据处理装置在硬盘组进行功能初始化之后,可以从第一内存单元中读取第一数据。
S304、数据处理装置判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值。
其中,由于数据处理装置在执行:将第三数据和第三数据的特征值写入第一硬盘组的日志区之后,第一硬盘组的日志区中写入的第一数据的数据量可能会超过一定的阈值,而此时第二硬盘组的日志区中还未写入任何的数据,此时若继续将读取到的数据写入第一硬盘组的日志区,则可能会导致第一硬盘组的日志区中的存储空间不足,不能够继续写入数据,导致数据的写入无法正常进行,因此,数据处理装置可以实时判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值,并在第一硬盘组的日志区的日志空间已用量高于预设阈值时,对第一硬盘组和第二硬盘组进行功能切换,确定第一硬盘组为DGR功能的硬盘组,确定第二硬盘组为DGW功能的硬盘组。即执行S305-S306:
具体的,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则执行S305-S306;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第一数据和第一数据的特征值继续写入第一硬盘组的日志区,即执行与S302c类似的步骤:数据处理装置将第一数据和第一数据的特征值写入第一硬盘组的日志区。
S305、数据处理装置将第一数据和第一数据的特征值写入第二硬盘组的日志区。
需要说明的是,由于当前状态下第二硬盘组的日志区中除了刚刚写入的第一数据和第一数据的特征值外不包括任何其他数据,因此数据处理装置并不对已写入第二硬盘组的日志区中数据进行整理。
S306、数据处理装置根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区。
其中,已写入第一硬盘组的日志区中的数据包括第三数据。
需要说明的是,当第一硬盘组的日志区的日志空间已用量高于预设阈值,对第一硬盘组和第二硬盘组进行硬盘组功能切换之后,数据处理装置则需要暂停将读取到的数据(如第一数据)写入第一硬盘组的日志区,仅对第一硬盘组执行:将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区;并且,由于当前状态下第二硬盘组的日志区中除了刚刚写入的第一数据和第一数据的特征值外不包括任何其他数据,数据处理装置并不对已写入第二硬盘组的日志区中数据进行整理,仅向第二硬盘组的日志区中写入第一数据。因此,可以实现数据整理和数据写入的分离,同时提高数据整理和数据写入的速度。
S307、数据处理装置从第一内存单元读取第二数据和第二数据的特征值。
S308、数据处理装置判断第二硬盘组的日志区的日志空间已用量是否高于预设阈值。
具体的,若第二硬盘组的日志区的日志空间已用量高于预设阈值,则执行S309-S310,即对第一硬盘组和第二硬盘组进行功能切换,确定第一硬盘组为DGW功能的硬盘组,确定第二硬盘组为DGR功能的硬盘组;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第二数据和第二数据的特征值继续写入第二硬盘组的日志区,即执行与S305类似的步骤:数据处理装置将第二数据和第二数据的特征值写入第二硬盘组的日志区。
S309、数据处理装置将第二数据和第二数据的特征值写入第一硬盘组的日志区,并暂停将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区。
其中,已写入第一硬盘组的日志区中的数据包括第二数据和未整理的第三数据。
S310、数据处理装置根据已写入第二硬盘组的日志区中的数据的特征值,将已写入第二硬盘组的日志区中的数据整理至第三硬盘组的数据区。
其中,已写入第二硬盘组的日志区中的数据为第一内存单元中读取的数据,即已写入第二硬盘组的第一数据。
S311、数据处理装置从第一内存单元读取第四数据和第四数据的特征值。
S312、数据处理装置判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值。
具体的,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则执行S313-S314,即对第一硬盘组和第二硬盘组进行功能切换,确定第二硬盘组为DGW功能的硬盘组,确定第一硬盘组为DGR功能的硬盘组;若第一硬盘组的日志区的日志空间已用量不高于预设阈值,数据处理装置则可以将读取到的第四数据和第四数据的特征值继续写入第一硬盘组的日志区,即执行与S309类似的步骤:数据处理装置将第四数据和第四数据的特征值写入第一硬盘组的日志区。
S313、数据处理装置将第四数据和第四数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第三硬盘组的数据区。
S314、数据处理装置根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区。
示例性的,本发明实施例中以数据处理装置执行:步骤c和步骤d为例,说明数据处理装置具体执行纯净的数据写和数据整理的过程。其中步骤c为:将从内存(第一内存单元)中读取到的数据和数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第三硬盘组的数据区;步骤d为:根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区。
如图9所示,在本实例中采用小写字母表示数据本身,采用***数据表示数据的写地址信息(如,数据的块号)。例如,在处理中的写请求的数据d的块号为9、数据b的块号为2以及数据c的块号为8等;在第三硬盘组的数据区中的数据h的块号为11。
如图9所示,数据处理装置可以根据已写入第一硬盘组的日志区中的数据的块号,将该数据写入第三硬盘组的数据区中相应块号所对应的地址中。如,已写入第一硬盘组的日志区中的数据r的块号为4,则数据处理装置可以将已写入第一硬盘组的日志区中的数据r写入第三硬盘组的数据区中块号为4的地址空间;已写入第一硬盘组的日志区中的数据p的块号为2,则数据处理装置可以将已写入第一硬盘组的日志区中的数据p写入第三硬盘组的数据区中块号为2的地址空间。其中,当数据的块号所对应的地址空间中不是第一次写入数据时,数据处理装置可以采用该数据替换第三硬盘组的数据区中该数据的块号所对应的地址空间中已存储的数据。
进一步可选的,为了减少在***断电后,第一内存单元中未写入硬盘组中的数据的丢失,数据处理装置可以在检测到断电指令后,将第一内存单元中的所有第一数据写入DGW(第一硬盘组或者第二硬盘组)的日志区。本发明实施例的方法还可以包括S315:
S315、数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程。
具体的,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括:S315a和S315b或者S315a和S315c:
S315a、数据处理装置检测断电指令。
其中,数据处理装置在检测到断电指令后,为了防止断电后第一内存单元中的数据的丢失,可以依次从第一内存单元中读取第一内存单元中的所有第一数据,并将读取到的第一数据写入DGW功能的硬盘组日志区。
当第一硬盘组为DGW功能的硬盘组,第二硬盘组为DGR功能的硬盘组时,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括:S315a和S315b:
S315b、数据处理装置在检测到断电指令后,按照第一内存单元中第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的数据写入第一硬盘组的日志区。
当第二硬盘组为DGW功能的硬盘组,第一硬盘组为DGR功能的硬盘组时,数据处理装置执行断电前,将第一内存单元中第一数据写入DGW功能的硬盘组日志区的流程可以包括S315a和S315c:
S315c、数据处理装置在检测到断电指令后,按照第一内存单元中第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的数据写入第二硬盘组的日志区。
进一步的,由于第二内存单元为DRAM为易失性随机存储设备,DRAM是不支持断电保护的内存。因此,在***断电后,若检测到所述上电加载指令,并重新上电加载数据后,第二内存单元中为存储有任何的数据的。此时,若接收到所述数据读取命令后,数据处理装置则需要从硬盘组中读取相应的数据然后返回读取到的数据,数据的读取速度较低,因此,为了提高数据的读取速度,数据处理装置在检测到上电加载指令可以将第三硬盘组的数据区中包含的数据和第三硬盘组的数据区中包含的数据写入第二内存单元。具体的,本发明实施例的方法还可以包括:
S316、数据处理装置执行上电后的数据恢复流程。
其中,S316具体可以包括S316a、S316b、S316c和S316d:
S316a、数据处理装置检测上电加载指令。
S316b、数据处理装置在检测到上电加载指令后,根据已写入第二硬盘组的日志区中的数据的特征值,将已写入第二硬盘组的日志区中的数据整理至第三硬盘组的数据区。
S316c、数据处理装置在检测到上电加载指令后,根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第三硬盘组的数据区。
S316d、数据处理装置将第三硬盘组的数据区中包含的数据和第三硬盘组的数据区中包含的数据写入第二内存单元。
进一步可选的,若所述上电加载指令具体为异常断电后的上电加载指令,则在检测到上电加载指令之后,在整理已写入第一硬盘组的日志区中的数据和已写入第二硬盘组的日志区中的数据之前,本发明实施例的方法还可以包括:按照所述第一内存单元中所述第一数据的写入先后顺序,依次从第一内存单元中读取第一内存单元中的所有数据,并将读取到的第一数据写入第一硬盘组的日志区和第二硬盘组的日志区。
进一步的,由于在S202中数据处理装置在接收到数据写入命令后,可以将数据写入命令中包含的待写入的数据写入第二内存单元;因此,数据处理装置在接收到所述数据读取命令后,可以直接从第二内存单元读取所述待读取的数据,而不中需要从硬盘组中读取数据,数据的读取速度较快,并且可以减少对硬盘组的访问次数。本发明实施例的方法还可以包括S317:
S317、数据处理装置从第二内存单元中读取待读取的数据的流程。
其中,S317具体可以包括S317a和S317b:
S317a、数据处理装置接收数据读取命令,所述数据写入命令中包含待读取的数据的标识。
S317b、数据处理装置在接收到所述数据读取命令后,根据待读取的数据的标识从第二内存单元读取待读取的数据。
本发明实施例提供的数据处理方法,若第一硬盘组的日志区的日志空间已用量高于预设阈值,数据处理装置则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
实施例4
本发明实施例提供一种数据处理装置,如图4所示,包括:第一判断单元41、第一写单元42和第一整理单元43。
第一判断单元41,用于判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值。
第一写入单元42,用于若所述第一判断单元41确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息。
第一整理单元43,用于若所述第一判断单元41确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步的,如图5所示,所述数据处理装置,还包括:第二判断单元44、第二写入单元45和第二整理单元46。
第二判断单元44,用于在所述第一写入单元42将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区之后,判断所述第二硬盘组的日志区的日志空间已用量是否高于所述预设阈值。
第二写入单元45,用于若所述第二判断单元44确定所述第二硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从所述内存中读取的第二数据和所述第二数据的特征值写入所述第一硬盘组的日志区,并暂停将所述已写入所述第一硬盘组的日志区中的数据整理至所述第二数据区,所述已写入所述第一硬盘组的日志区中的数据包括所述第二数据,所述第二数据的特征值包括所述第二数据的写地址信息和所述第二数据的大小信息。
第二整理单元46,用于若所述第二判断单元44确定所述第二硬盘组的日志区的日志空间已用量高于所述预设阈值,则根据已写入所述第二硬盘组的日志区中的数据的特征值,将所述已写入所述第二硬盘组的日志区中的数据整理至所述第一数据区,所述已写入所述第二硬盘组的日志区中的数据为从所述内存中读取的数据。
需要说明的是,如图5所示,在本发明实施例中,所述第一整理单元43所整理的数据为第二写入单元45写入所述第一硬盘组的日志区的数据;所述第二整理单元46所整理的数据为第一写入单元42写入所述第二硬盘组的日志区的数据。
进一步可选的,在本发明实施例的第一种应用场景中,所述第一数据区为所述第二硬盘组的数据区;所述第二数据区为所述第一硬盘组的数据区。
进一步可选的,在本发明实施例的第二种应用场景中,所述第一数据区为第三硬盘组的数据区;所述第二数据区为所述第三硬盘组的数据区。
进一步的,在本发明实施例的第一种应用场景中,所述第一硬盘组包含日志区和数据区。
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据。
所述第二硬盘组包含日志区和数据区。
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
进一步的,在本发明实施例的第二种应用场景中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区。
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
进一步的,在第一种应用场景中,所述第一硬盘组和所述第二硬盘组为硬盘空间中的硬盘分组;所述硬盘空间中包含至少两个硬盘。
所述数据处理装置还包括:分组单元。
分组单元,用于在所述第一判断单元判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值之前,将所述硬盘空间中的至少两个硬盘划分至所述第一硬盘组和所述第二硬盘组。
其中,所述第一硬盘组包含至少一个所述硬盘,所述第二硬盘组包含至少一个所述硬盘。
进一步可选的,在第一种应用场景中,所述第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;所述第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
进一步的,在第二种应用场景中,所述第一硬盘组、所述第二硬盘组和所述第三硬盘组为硬盘空间中的硬盘分组;所述硬盘空间中包含至少三个硬盘。
所述数据处理装置还包括:分组单元。
分组单元,用于在所述第一判断单元判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值之前,将所述硬盘空间中的至少三个硬盘划分至所述第一硬盘组、所述第二硬盘组和所述第三硬盘组。
其中,所述第一硬盘组包含至少一个所述硬盘,所述第二硬盘组包含至少一个所述硬盘,所述第三硬盘组包含至少一个所述硬盘。
进一步可选的,在第二种应用场景中,第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第三硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
需要说明的是,本发明实施例提供的数据处理装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的数据处理装置,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
实施例5
本发明实施例还提供一种数据处理装置,包括:处理器。
处理器,用于若所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步的,所述处理器,还用于在将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区之后,判断所述第二硬盘组的日志区的日志空间已用量是否高于所述预设阈值;若确定所述第二硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从所述内存中读取的第二数据和所述第二数据的特征值写入所述第一硬盘组的日志区,并暂停将所述已写入所述第一硬盘组的日志区中的数据整理至所述第二数据区,所述已写入所述第一硬盘组的日志区中的数据包括所述第二数据,所述第二数据的特征值包括所述第二数据的写地址信息和所述第二数据的大小信息;根据已写入所述第二硬盘组的日志区中的数据的特征值,将所述已写入所述第二硬盘组的日志区中的数据整理至所述第一数据区,所述已写入所述第二硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步可选的,在本发明实施例的第一种应用场景中,所述第一数据区为所述第二硬盘组的数据区;所述第二数据区为所述第一硬盘组的数据区。
进一步可选的,在本发明实施例的第二种应用场景中,所述第一数据区为第三硬盘组的数据区;所述第二数据区为所述第三硬盘组的数据区。
进一步的,在本发明实施例的第一种应用场景中,所述第一硬盘组包含日志区和数据区。
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据。
所述第二硬盘组包含日志区和数据区。
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
进一步的,在本发明实施例的第二种应用场景中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区。
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
进一步的,在第一种应用场景中,所述第一硬盘组和所述第二硬盘组为硬盘空间中的硬盘分组;所述硬盘空间中包含至少两个硬盘。
所述处理器,还用于在判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值之前,将所述硬盘空间中的至少两个硬盘划分至所述第一硬盘组和所述第二硬盘组。
其中,所述第一硬盘组包含至少一个所述硬盘,所述第二硬盘组包含至少一个所述硬盘。
进一步可选的,在第一种应用场景中,所述第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;所述第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
进一步的,在第二种应用场景中,所述第一硬盘组、所述第二硬盘组和所述第三硬盘组为硬盘空间中的硬盘分组;所述硬盘空间中包含至少三个硬盘。
所述处理器,还用于在判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值之前,将所述硬盘空间中的至少三个硬盘划分至所述第一硬盘组、所述第二硬盘组和所述第三硬盘组。
其中,所述第一硬盘组包含至少一个所述硬盘,所述第二硬盘组包含至少一个所述硬盘,所述第三硬盘组包含至少一个所述硬盘。
进一步可选的,在第二种应用场景中,第一硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第二硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘;第三硬盘组中可以包含至少两个硬盘,每两个硬盘互为镜像硬盘。
需要说明的是,本发明实施例提供的数据处理装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的数据处理装置,若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
实施例6
本发明实施例提供一种数据处理***,在本发明实施例的第一种应用场景中,如图6所示,所述数据处理***包括:第一硬盘组、第二硬盘组和数据处理装置。
其中,在第一种应用场景中,所述第一硬盘组包含日志区和数据区;所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据。
所述第二硬盘组包含日志区和数据区。
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
具体的,在第一种应用场景中,所述数据处理装置,用于若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存(内存中的第一内存单元)中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第二硬盘组的数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第一硬盘组的数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步的,所述数据处理装置,还用于在确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值之后,判断所述第二硬盘组的日志区的日志空间已用量是否高于所述预设阈值;若所述第二硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从所述内存中读取的第二数据和所述第二数据的特征值写入所述第一硬盘组的日志区,并暂停将所述已写入所述第一硬盘组的日志区中的数据整理至所述第一硬盘组的数据区,所述已写入所述第一硬盘组的日志区中的数据包括所述第二数据,所述第二数据的特征值包括所述第二数据的写地址信息和所述第二数据的大小信息;根据已写入所述第二硬盘组的日志区中的数据的特征值,将所述已写入所述第二硬盘组的日志区中的数据整理至所述第二硬盘组的数据区,所述已写入所述第二硬盘组的日志区中的数据为从所述内存中读取的数据。
在本发明实施例的第二种应用场景中,如图7所示,所述数据处理***包括:第一硬盘组、第二硬盘组、第三硬盘组、数据处理装置和内存(所述内存包括第一内存单元和第二内存单元)。
其中,在第二种应用场景中,所述第一硬盘组仅包含日志区;所述第二硬盘组仅包含日志区;所述第三硬盘组仅包含数据区。
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第三硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据和从所述第二硬盘组的日志区中整理的数据。
具体的,在第二种应用场景中,所述数据处理装置,用于若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存(内存中的第一内存单元)中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第三硬盘组的数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第三硬盘组的数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步的,所述数据处理装置,还用于在确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值之后,判断所述第二硬盘组的日志区的日志空间已用量是否高于所述预设阈值;若所述第二硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从所述内存中读取的第二数据和所述第二数据的特征值写入所述第一硬盘组的日志区,并暂停将所述已写入所述第一硬盘组的日志区中的数据整理至所述第三硬盘组的数据区,所述已写入所述第一硬盘组的日志区中的数据包括所述第二数据,所述第二数据的特征值包括所述第二数据的写地址信息和所述第二数据的大小信息;根据已写入所述第二硬盘组的日志区中的数据的特征值,将所述已写入所述第二硬盘组的日志区中的数据整理至所述第三硬盘组的数据区,所述已写入所述第二硬盘组的日志区中的数据为从所述内存中读取的数据。
进一步的,本发明实施例中的内存包括第一内存单元和第二内存单元。
第二内存单元,用于存储所述数据处理装置在接收到数据写入命令后,写入所述第二内存单元的待写入的数据,所述数据写入命令中包含所述待写入的数据和所述待写入的数据的特征值,所述待写入的数据的特征值包含:所述待写入的数据的写地址信息和所述待写入的数据的大小信息。
第一内存单元,用于存储所述数据处理装置在接收到数据写入命令后,写入所述第一内存单元的第一数据,所述第一数据为所述数据处理装置根据所述数据写入命令中包含的所述待写入的数据和所述待写入的数据的特征值生成的数据信息。
进一步的,所述第一内存单元为非易失性存储器NVM,所述第二内存单元为动态随机存取存储器DRAM。
需要说明的是,本发明实施例提供的数据处理***中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的数据处理***,若第一硬盘组的日志区的日志空间已用量高于预设阈值,数据处理装置则将从内存中读取的第一数据和第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入第二硬盘组的日志区中的数据整理至第一数据区;根据已写入第一硬盘组的日志区中的数据的特征值,将已写入第一硬盘组的日志区中的数据整理至第二数据区,已写入第一硬盘组的日志区中的数据为从所述内存中读取的数据。与现有技术中针对所有硬盘同时执行数据写入和数据整理相比,通过本方案,可以将硬盘进行分组,并且由不同的硬盘组分别仅执行数据写入或者数据整理操作,实现了数据的纯净连续写入,可以同时提高数据写入速度和数据整理速度,提高数据处理过程的IOPS性能,进而可以实现数据的快速持久化。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种数据处理方法,其特征在于,包括:
若第一硬盘组的日志区的日志空间已用量高于预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;
根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据;
其中,所述第一数据区为所述第二硬盘组的数据区,所述第二数据区为所述第一硬盘组的数据区。
2.根据权利要求1所述的数据处理方法,其特征在于,所述第一硬盘组包含日志区和数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据;
所述第二硬盘组包含日志区和数据区;
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
3.一种数据处理装置,其特征在于,包括:
第一判断单元,用于判断第一硬盘组的日志区的日志空间已用量是否高于预设阈值;
第一写入单元,用于若所述第一判断单元确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则将从内存中读取的第一数据和所述第一数据的特征值写入第二硬盘组的日志区,并暂停将已写入所述第二硬盘组的日志区中的数据整理至第一数据区,所述已写入所述第二硬盘组的日志区中的数据包括所述第一数据,所述第一数据的特征值包括所述第一数据的写地址信息和所述第一数据的大小信息;
第一整理单元,用于若所述第一判断单元确定所述第一硬盘组的日志区的日志空间已用量高于所述预设阈值,则根据已写入所述第一硬盘组的日志区中的数据的特征值,将所述已写入所述第一硬盘组的日志区中的数据整理至第二数据区,所述已写入所述第一硬盘组的日志区中的数据为从所述内存中读取的数据;
其中,所述第一数据区为所述第二硬盘组的数据区,所述第二数据区为所述第一硬盘组的数据区。
4.根据权利要求3所述的数据处理装置,其特征在于,所述第一硬盘组包含日志区和数据区;
其中,所述第一硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第一硬盘组的数据区用于存储从所述第一硬盘组的日志区中整理的数据;
所述第二硬盘组包含日志区和数据区;
其中,所述第二硬盘组的日志区用于存储从所述内存中读取的数据和所述从所述内存中读取的数据的特征值;所述第二硬盘组的数据区用于存储从所述第二硬盘组的日志区中整理的数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410073208.6A CN103838521B (zh) | 2014-02-28 | 2014-02-28 | 一种数据处理方法及装置 |
PCT/CN2014/089623 WO2015127791A1 (zh) | 2014-02-28 | 2014-10-28 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410073208.6A CN103838521B (zh) | 2014-02-28 | 2014-02-28 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838521A CN103838521A (zh) | 2014-06-04 |
CN103838521B true CN103838521B (zh) | 2017-02-08 |
Family
ID=50802075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410073208.6A Active CN103838521B (zh) | 2014-02-28 | 2014-02-28 | 一种数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103838521B (zh) |
WO (1) | WO2015127791A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838521B (zh) * | 2014-02-28 | 2017-02-08 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN105138280B (zh) * | 2015-07-31 | 2018-10-19 | 成都华为技术有限公司 | 数据写入方法、装置及*** |
CN106648444B (zh) * | 2015-10-30 | 2019-06-28 | 大唐移动通信设备有限公司 | 一种消息处理方法和设备 |
CN106598768B (zh) * | 2016-11-28 | 2020-02-14 | 华为技术有限公司 | 一种处理写请求的方法、装置和数据中心 |
CN108334277B (zh) * | 2017-05-10 | 2019-06-28 | 中兴通讯股份有限公司 | 一种日志写入及同步方法、装置、***、计算机存储介质 |
CN108763454A (zh) * | 2018-05-28 | 2018-11-06 | 郑州云海信息技术有限公司 | 分布式文件***日志更新方法、***、装置及存储介质 |
CN110908828A (zh) * | 2018-09-18 | 2020-03-24 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113495883A (zh) * | 2020-03-20 | 2021-10-12 | 华为技术有限公司 | 一种针对数据库的数据存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542054A (zh) * | 2011-12-29 | 2012-07-04 | 厦门雅迅网络股份有限公司 | 一种利用缓存表来提高数据库数据***性能的方法 |
CN103500077A (zh) * | 2013-10-16 | 2014-01-08 | 北京国双科技有限公司 | 文件存储方法和装置 |
CN103559145A (zh) * | 2013-10-22 | 2014-02-05 | 华为技术有限公司 | 一种数据读取、写入方法和电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606694B2 (en) * | 2000-12-22 | 2003-08-12 | Bull Hn Information Systems Inc. | Write logging in mirrored disk subsystems |
KR100849221B1 (ko) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
CN102750196A (zh) * | 2011-04-20 | 2012-10-24 | 大连兆阳软件科技有限公司 | 一种用于数据存储和备份***及方法 |
CN102810050A (zh) * | 2011-05-31 | 2012-12-05 | 深圳市金蝶友商电子商务服务有限公司 | 日志数据写入方法和日志*** |
SG196732A1 (en) * | 2012-07-16 | 2014-02-13 | Agency Science Tech & Res | Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk |
CN103049355B (zh) * | 2012-12-25 | 2015-06-17 | 华为技术有限公司 | 一种数据库***恢复方法及设备 |
CN103678149B (zh) * | 2013-12-19 | 2017-01-18 | 华为技术有限公司 | 数据处理的方法及设备 |
CN103838521B (zh) * | 2014-02-28 | 2017-02-08 | 华为技术有限公司 | 一种数据处理方法及装置 |
-
2014
- 2014-02-28 CN CN201410073208.6A patent/CN103838521B/zh active Active
- 2014-10-28 WO PCT/CN2014/089623 patent/WO2015127791A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542054A (zh) * | 2011-12-29 | 2012-07-04 | 厦门雅迅网络股份有限公司 | 一种利用缓存表来提高数据库数据***性能的方法 |
CN103500077A (zh) * | 2013-10-16 | 2014-01-08 | 北京国双科技有限公司 | 文件存储方法和装置 |
CN103559145A (zh) * | 2013-10-22 | 2014-02-05 | 华为技术有限公司 | 一种数据读取、写入方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015127791A1 (zh) | 2015-09-03 |
CN103838521A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838521B (zh) | 一种数据处理方法及装置 | |
CN1834950B (zh) | 具有活动和非活动执行核心的多核处理器 | |
CN101273334B (zh) | 向支持多逻辑分区的计算机中的逻辑分区指派处理器的方法和*** | |
CN100543709C (zh) | 迁移数据页面的方法和装置 | |
CN103064795A (zh) | 一种存储设备的控制方法及相关装置 | |
CN107562483A (zh) | 一种挂载引导文件***的方法及装置 | |
CN104731896A (zh) | 一种数据处理方法及*** | |
CN103647850A (zh) | 一种分布式版本控制***的数据处理方法、设备及*** | |
CN104424122A (zh) | 一种电子设备及内存划分方法 | |
CN104517067A (zh) | 访问数据的方法、装置及*** | |
US8001314B2 (en) | Storing a driver for controlling a memory | |
CN106055273A (zh) | 一种控制板及控制方法 | |
US8205031B2 (en) | Memory management system and method thereof | |
CN103019624A (zh) | 一种相变内存装置 | |
CN106708445B (zh) | 链路选择方法及装置 | |
CN100492323C (zh) | 对缓存内容进行保护的方法和装置以及缓存控制器 | |
CN101290602B (zh) | 存储器管理***与方法 | |
CN105513630A (zh) | Dram的初始化方法及装置 | |
CN102270179A (zh) | 用于cad***的基于片元的数据存储和处理方法及其*** | |
CN102314396B (zh) | 区块为基础闪存的字节存取的方法与装置 | |
CN102956270B (zh) | 移动存储设备检测方法和装置 | |
CN101169754B (zh) | 计算机***及其控制方法 | |
CN102969026B (zh) | 基于数据处理***的移动存储设备检测方法和装置 | |
CN1312570C (zh) | 进行硬盘阵列数据迁移的方法及相关装置 | |
CN103064777A (zh) | 磁盘阵列告警显示方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |