CN115933994B - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents
一种数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115933994B CN115933994B CN202310024491.2A CN202310024491A CN115933994B CN 115933994 B CN115933994 B CN 115933994B CN 202310024491 A CN202310024491 A CN 202310024491A CN 115933994 B CN115933994 B CN 115933994B
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- list
- written
- data blocks
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 15
- 230000008521 reorganization Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、电子设备及存储介质,涉及存储领域,方法包括:获取待写入数据包含的所有条带;在各条带中确定待写入各磁盘的数据块;将待写入同一磁盘的所有数据块合并写入至对应的磁盘;可获取待写入数据所包含的所有条带,并在各条带中确定待写入各磁盘的数据块,即可提前统计需写入每一磁盘的所有数据块;随后,可将待写入同一磁盘的所有数据块合并写入至对应的磁盘,考虑到这些数据块来自不同的条带,因此本发明实际可将多个条带并行地写入至各个磁盘,即更能够有效发挥所有磁盘的写入性能,并取得较高的写入速度。
Description
技术领域
本发明涉及存储领域,特别涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
分布式存储系统通常可包含多个磁盘设备,这些磁盘设备通常可组成RAID磁盘阵列(Redundant Array of Independent Disks,独立磁盘组成的具有冗余性的阵列)共同存储数据。在磁盘阵列进行数据存储时,待写入数据通常会被划分为多个条带,并以条带的形式进行磁盘写入。然而,这些条带通常只能串行写入磁盘,难以取得较好的写入速度。
发明内容
本发明的目的是提供一种数据处理方法、装置、电子设备及计算机可读存储介质,可实现将多个条带同时并行地写入各个磁盘,以此提升数据写入处理速度。
为解决上述技术问题,本发明提供一种数据处理方法,包括:
获取待写入数据包含的所有条带;
在各所述条带中确定待写入各磁盘的数据块;
将待写入同一磁盘的所有数据块合并写入至对应的磁盘。
可选地,所述在各所述条带中确定待写入各磁盘的数据块,包括:
将各所述条带保存至内存;
在各所述条带中确定待写入各所述磁盘的数据块,并将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表;
相应的,所述将待写入同一磁盘的所有数据块合并写入至对应的磁盘,包括:
利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入至所述目标磁盘。
可选地,所述将各所述条带保存至内存,包括:
为各所述条带中的每一数据块申请对应的离散内存空间作为数据页,并将各所述条带中的每一数据块保存至对应的数据页。
可选地,所述将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表,包括:
将待写入各所述磁盘的所有数据块对应数据页的地址保存至各所述磁盘对应的列表。
可选地,所述将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表,包括:
在所述内存中为各所述磁盘构造对应的列表,并将待写入各所述磁盘的所有数据块的地址保存至各所述磁盘对应的列表;
将所有所述列表的首地址保存至控制页。
可选地,所述利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入至所述目标磁盘,包括:
利用所述控制页从所述内存中提取所述目标列表;
利用所述目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入所述目标磁盘。
可选地,所述在所述内存中为各所述磁盘构造对应的列表,并将待写入各所述磁盘的所有数据块的地址保存至各所述磁盘对应的列表,包括:
申请离散内存空间存放所述列表对应的首个子列表,并将待写入所述列表对应磁盘的数据块的地址保存至所述首个子列表;
当检测到所述首个子列表已满时,申请下一块离散内存空间存放所述列表的下一子列表,在所述首个子列表中保存所述下一子列表的首地址,并将待写入所述列表对应磁盘的数据块的地址继续保存至所述下一子列表。
可选地,所述利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,包括:
从所述目标列表的首个子列表中提取待写入所述目标磁盘的数据块的地址,并根据所述地址从所述内存中提取对应的数据块;
当所述目标列表的首个子列表中的地址均已提取时,根据所述目标列表的首个子列表中记录的首地址从内存中提取所述目标列表的下一子列表,并利用所述目标列表的下一子列表继续提取待写入所述目标磁盘的数据块的地址。
可选地,在各所述条带中确定待写入各磁盘的数据块之前,还包括:
判断存储系统是否满足预设大规模写入条件;
若是,则执行所述在各所述条带中确定待写入各磁盘的数据块的步骤。
可选地,所述判断存储系统是否满足预设大规模写入条件,包括:
判断所述待写入数据对应的条带数量是否大于预设阈值;
若是,则判定所述存储系统满足所述预设大规模写入条件。
若否,则判定所述存储系统不满足所述预设大规模写入条件。
可选地,在判断存储系统是否满足预设大规模写入条件之后,还包括:
若判定所述存储系统不满足所述预设大规模写入条件,则依次将各条带中的数据块写入至对应的磁盘。
可选地,所述依次将各条带中的数据块写入至对应的磁盘,包括:
将各所述条带保存至内存中,并将各所述条带中的每一数据块的地址保存至控制页;
利用所述控制页从内存中依次提取各条带的数据块并写入至对应的磁盘。
可选地,所述将各所述条带保存至内存中,并将各所述条带中的每一数据块的地址保存至控制页,包括:
为各所述条带中的每一数据块申请对应的离散内存空间作为数据页,并将各所述条带中的每一数据块保存至对应的数据页中;
将各所述数据页的地址保存至所述控制页。
可选地,所述获取待写入数据包含的所有条带,包括:
获取所述待写入数据;
将所述待写入数据切分为所述条带,以及将所述条带切分为与各所述磁盘对应的数据块。
可选地,还包括:
获取数据读取任务,并确定所述数据读取任务对应的所有待读取条带;
在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块;
从各所述磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据。
可选地,在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块之前,还包括:
判断存储系统是否满足预设大规模读取条件;
若是,则执行所述在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块的步骤;
若否,则将首个待读取条带设置为待处理条带;
从各所述磁盘中读取所述待处理条带对应的待读取数据块,并将所述待处理条带对应的待读取数据块合并得到所述待处理条带对应的完整数据;
将下一待读取条带设置为所述待处理条带,并进入所述从各所述磁盘中读取所述待处理条带对应的待读取数据块的步骤,直至所有待读取条带均已处理时,将所有待读取条带对应的完整数据进行合并得到所述待读取数据。
可选地,所述判断存储系统是否满足预设大规模读取条件,包括:
判断所述数据读取任务对应的条带数量是否大于预设阈值;
若是,则判定所述存储系统满足所述预设大规模读取条件;
若否,则判定所述存储系统不满足所述预设大规模读取条件。
可选地,所述从各所述磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据,包括:
从各所述磁盘中合并读取对应的所有待读取数据块,并申请离散内存空间作为数据页存放各所述待读取数据块;
将各所述待读取数据块的数据页的地址保存至对应磁盘的列表中;
利用各所述磁盘的列表从内存中依次提取各所述待读取条带对应的待读取数据块,并将各所述待读取条带对应的待读取数据块合并得到所述待处理条带对应的完整数据。
本发明还提供一种数据处理装置,包括:
获取模块,用于获取待写入数据包含的所有条带;
确定模块,用于在各所述条带中确定待写入各磁盘的数据块;
写入模块,用于将待写入同一磁盘的所有数据块合并写入至对应的磁盘。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的数据处理方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的数据处理方法。
本发明提供一种数据处理方法,包括:获取待写入数据包含的所有条带;在各所述条带中确定待写入各磁盘的数据块;将待写入同一磁盘的所有数据块合并写入至对应的磁盘。
可见,本发明首先可获取待写入数据所包含的所有条带,并在各条带中确定待写入各磁盘的数据块,即可提前统计需写入每一磁盘的所有数据块;随后,本发明可将待写入同一磁盘的所有数据块合并写入至对应的磁盘,考虑到这些数据块来自不同的条带,因此本发明实际可将多个条带并行地写入至各个磁盘,即更能够有效发挥所有磁盘的写入性能,并取得较高的写入速度。本发明还提供一种数据处理装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种数据处理方法的流程图;
图2为本发明实施例所提供的一种条带的示意图;
图3为本发明实施例所提供的一种列表的示意图;
图4为本发明实施例所提供的一种条带分割的示意图;
图5为本发明实施例所提供的一种数据块纵向重组的示意图;
图6为本发明实施例所提供的另一种列表的示意图;
图7为本发明实施例所提供的一种数据处理装置的结构框图;
图8为本发明实施例所提供的一种电子设备的结构框图;
图9为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,在磁盘阵列进行数据存储时,待写入数据通常会被划分为多个条带,并以条带的形式进行磁盘写入。然而,这些条带通常只能串行写入磁盘,难以取得较好的写入速度。有鉴于此,本发明实施例可提供一种数据处理方法,可实现将多个条带同时并行地写入各个磁盘,以此可提升数据写入处理速度。需要指出的是,本发明实施例并不限定本方法的执行主体,例如可以为可管理磁盘阵列的个人电脑、服务器等,也可以为可管理磁盘阵列的板卡,例如RAID卡,其中RAID卡是专为磁盘阵列设置的硬件管理设备,具体的执行主体可根据实际应用需求进行选择。请参考图1,图1为本发明实施例所提供的一种数据处理方法的流程图,该方法可以包括:
S101、获取待写入数据包含的所有条带。
在本发明实施例中,待写入存储系统的待写入数据首先会被切分为多个条带,而这些条带又会被切分为与该存储系统中各个磁盘对应的数据块。为便于理解,请参考图2,图2为本发明实施例所提供的一种条带的示意图。其中,主机下发的IO任务(例如待写入数据)将会被切分为多个条带,例如在图2中被切分为4个条带,分别为stripe0、stripe1、stripe2及stripe3;随后,每个条带由将依照磁盘数量被切分为对应的数据块,例如条带stripe0被切分为依次与磁盘1、磁盘2、磁盘3、磁盘4及磁盘5对应的数据块strip1、strip2、strip3、strip4、parity1,条带stripe1被切分为依次与磁盘1、磁盘2、磁盘3、磁盘4及磁盘5对应的数据块parity2、strip5、strip6、strip7、strip8,条带stripe2被切分为依次与磁盘1、磁盘2、磁盘3、磁盘4及磁盘5对应的数据块strip9、parity3、strip10、strip11、strip12,条带stripe3被切分为依次与磁盘1、磁盘2、磁盘3、磁盘4及磁盘5对应的数据块strip13、strip14、parity4、strip15、strip16。
基于此,获取待写入数据包含的所有条带,包括:
步骤11:获取待写入数据;
步骤12:将待写入数据切分为条带,以及将条带切分为与各磁盘对应的数据块。
需要说明的是,本发明实施例并不限定条带的数量及大小,也不限定磁盘的具体数量,可根据实际应用需求进行设定。进一步,本发明实施例也不限定磁盘阵列所采用的RAID模式,例如可以为RAID0、RAID1、RAID5等,可根据实际应用需求进行设定。
S102、在各条带中确定待写入各磁盘的数据块。
在完成条带获取后,本发明实施例将从各条带中确定待写入各磁盘的数据块,例如在图2的示例中,待写入磁盘1的数据块包括strip1、parity2、strip9及strip13,待写入磁盘2的数据块包括strip2、strip5、parity3及strip14,以此类推。换句话说,本申请将提前统计待写入各磁盘的所有数据块,以便将待写入同一磁盘的所有数据块一次性合并写入对应的磁盘中。
S103、将待写入同一磁盘的所有数据块合并写入至对应的磁盘。
应当指出的是,在现有技术中,各条带是串行写入的,例如对于图2的示例中,现有方法会将stripe0先写入各个磁盘,然后再写入stripe1,进而再写入stripe2,以此类推。而这导致各个磁盘需等待当前条带完成写入之后,再开始写入下一个条带的数据内容,即增加了等待时间,无法最大化磁盘的写入性能。而在本申请实施例中,由于预先已统计了待写入各磁盘的所有数据块,因此在进行数据写入时,各磁盘可将待写入的数据块进行合并写入,不需要等待其他磁盘完成写入动作。例如,对于磁盘1,其在完成数据块strip1的写入之后,可立刻开始写入数据块parity2,无需等待其他磁盘完成对strip2、strip3、strip4及parity1的写入。进而,由于减少了等待的环节,因此本发明实施例可大幅提升磁盘阵列的数据写入性能,实现各磁盘并发写入数据的效果,从而可有效提升磁盘阵列处理数据写入任务的效率。
基于上述实施例,本发明首先可获取待写入数据所包含的所有条带,并在各条带中确定待写入各磁盘的数据块,即可提前统计需写入每一磁盘的所有数据块;随后,本发明可将待写入同一磁盘的所有数据块合并写入至对应的磁盘,考虑到这些数据块来自不同的条带,因此本发明实际可将多个条带并行地写入至各个磁盘,即更能够有效发挥所有磁盘的写入性能,并取得较高的写入速度。
基于上述实施例,可以理解的是,为了实现对条带中各数据块的提前统计,可先将各条带保存至内存,并在内存中依照数据块与磁盘间的对应关系,对各数据块进行重新分组,从而可依照分组情况将待写入同一磁盘的所有数据块合并写入对应的磁盘。换句话说,对数据块的统计及重新分组可通过内存优化方法来实现。下面将对内存优化的具体实施例方式进行详细介绍。在一种可能的情况中,本发明实施例所提供的数据处理方法还可以包括:
S201、获取待写入数据包含的所有条带;
S202、将各条带保存至内存。
应当指出的是,该内存可以为设置于执行本方法的主体内部的内存,例如该内存可以为RAID卡自身的内存。需要说明的是,本发明实施例并不限定将各条带保存至内存的具体方式,例如可在内存中申请连续的内存空间,以在该内存空间中完整地保存所有条带;当然,也可以为各条带申请对应的多个离散内存空间,并利用对应的离散内存空间保存各个条带;当然,也可以为各条带中的每一数据块申请对应的离散内存空间,并利用对应的离散内存空间保存各个数据块。可以理解的是,在向内存申请内存空间时,假若对内存空间的大小要求较低,且不要求各内存空间之间相互连接,则能够高效地向内存申请到内存空间;反之,假若需向内存申请大面积连续的内存空间则很难高效地进行内存申请。也正因如此,本发明实施例可为各条带中的每一数据块申请对应的离散内存空间作为存放该数据块的数据页,并将各条带中的每一数据块保存至对应的数据页。考虑到每一数据块的体积较小,即各数据页的面积较小,且本发明实施例并不要求各数据页之间相互连接,因此本发明实施例能够更加高效地向内存申请到所需的内存空间,并能够提升内存的利用率。
基于此,将各条带保存至内存,可以包括:
步骤21:为各条带中的每一数据块申请对应的离散内存空间作为数据页,并将各条带中的每一数据块保存至对应的数据页。
S203、在各条带中确定待写入各磁盘的数据块,并将待写入各磁盘的所有数据块在内存中的地址保存至各磁盘对应的列表。
为了统计待写入每个磁盘的数据块,本发明实施例可为每个磁盘设置对应的列表,该列表用于记录待写入对应磁盘的数据块在内存中的地址,即用于记录这些数据块在内存中的存放位置。进而,在进行磁盘写入时,仅需依照该列表中已记录的地址从内存中不断取出数据块,并写入磁盘即可。可以理解的是,当各数据块均被保存在对应的数据页时,上述列表可保存待写入对应磁盘的各数据块的数据页地址。
基于此,将待写入各磁盘的所有数据块在内存中的地址保存至各磁盘对应的列表,可以包括:
步骤31:将待写入各磁盘的所有数据块对应数据页的地址保存至各磁盘对应的列表。
值得指出的是,步骤S202和步骤S203实际上可并行执行。例如,当获取到待写入数据的条带之后,可为各条带中的每个数据块依次申请数据页,并同时根据该数据块所对应的磁盘,将其数据页的地址记录至对应的列表中。同样基于图2的示例进行描述,首先可为数据块strip1申请数据页,同时将strip1对应数据页的地址记录至磁盘1的列表中;在完成记录后,可为数据块strip2申请数据页,同时将strip2对应数据页的地址记录至磁盘2的列表中,以此类推。这样,便可在将数据块保存至内存的同时,记录其与磁盘间的对应关系。
进一步,可以理解的是,各磁盘的列表也可以保存在内存中。换句话说,本发明实施例可在内存中为各磁盘的列表申请对应的内存空间,用于存放对应数据块的地址。同时,为便于查找各个列表,本发明实施例也可利用一个控制页保存各列表的首地址。这样,在向各磁盘写入数据块时,可首先在控制页中查找对应列表的首地址,并基于该首地址获取到对应的列表;随后,可根据该列表中记录的各数据页的地址,并基于该地址获取到对应的数据块,进而将这些数据块写入对应的磁盘。
基于此,将待写入各磁盘的所有数据块在内存中的地址保存至各磁盘对应的列表,包括:
步骤41:在内存中为各磁盘构造对应的列表,并将待写入各磁盘的所有数据块的地址保存至各磁盘对应的列表;
步骤42:将所有列表的首地址保存至控制页。
当然,需要说明的是,本发明实施例同样不限定是否需为列表设置连续的内存空间,还是设置多个离散的内存空间。如上所述,大面积的连续内存空间不易申请,而多个离散的、面积较小的内存空间不仅便于申请,也更能提升内存的利用率,因此在本发明实施例中,各磁盘的列表可对应有多个离散的内存空间。具体的,初始化列表时,本发明实施例可首先为其申请首个离散内存空间用于存放该列表对应的首个子列表,并利用这个子列表存放对应的地址;随后,当首个子列表已满时,本发明实施例将为该列表申请下一离散内存空间用于存放该列表对应的下一子列表,用于记录保存对应的地址,并可在首个子列表中记录下一子列表的首地址,以便索引查找。
基于此,在内存中为各磁盘构造对应的列表,并将待写入各磁盘的所有数据块的地址保存至各磁盘对应的列表,可以包括:
步骤51:申请离散内存空间存放列表对应的首个子列表,并将待写入列表对应磁盘的数据块的地址保存至首个子列表;
步骤52:当检测到首个子列表已满时,申请下一块离散内存空间存放列表的下一子列表,在首个子列表中保存下一子列表的首地址,并将待写入列表对应磁盘的数据块的地址继续保存至下一子列表。
为便于理解本发明实施例所提供的列表,请参考图3,图3为本发明实施例所提供的一种列表的示意图,其中控制页用于保存各个列表的首地址(List Header Pointer),例如在图3中该控制页保存有8个列表的首地址;列表页中包含有个多个列表,如图3中包含有8个列表。应当指出的是,图3中将各个列表连续放置仅是为了便于理解,这些列表实际是离散且相互没有链接关系的。进一步,各个列表又可分为多个子列表,每个子列表占用较小的一片内存空间,且顺序相邻的两个子列表之间可通过列表指针(List Pointer)连接,例如列表0(List0)的首个子列表可通过列表指针(List Pointer)与下一子列表连接;各个子列表通过数据页指针(Data Page Pointer)记录各对应数据页的地址。这样,本发明实施例便可通过列表快速提取出需被写入同一磁盘的所有数据块,并将其合并写入对应的磁盘,从而达到提升写入速度的效果。需要说明的是,本发明实施例并不限定每个子列表、数据页的大小,例如均可以为4kb,当然也可以设置为其他大小。
S204、利用目标磁盘的目标列表从内存中提取出待写入目标磁盘的所有数据块,并合并写入至目标磁盘。
由于各列表的首地址已保存至控制页,因此本发明实施例可依照控制页中记录的地址从内存中提取上述目标列表,并利用该目标列表进行数据块提取及写入。
基于此,利用目标磁盘的目标列表从内存中提取出待写入目标磁盘的所有数据块,并合并写入至目标磁盘,可以包括:
步骤61:利用控制页从内存中提取目标列表;
步骤62:利用目标列表从内存中提取出待写入目标磁盘的所有数据块,并合并写入目标磁盘。
进一步,若每个列表包含多个子列表,则本发明实施例可依次从该列表的每个子列表中提取所需的地址信息。当然,在当前子列表的地址均已完成提取之后,本发明实施例还可通过该子列表中记录的下一子列表的地址获取下一子列表,并利用下一子列表继续进行地址提取。
基于此,利用目标磁盘的目标列表从内存中提取出待写入目标磁盘的所有数据块,可以包括:
步骤71:从目标列表的首个子列表中提取待写入目标磁盘的数据块的地址,并根据地址从内存中提取对应的数据块;
步骤72:当目标列表的首个子列表中的地址均已提取时,根据目标列表的首个子列表中记录的首地址从内存中提取目标列表的下一子列表,并利用目标列表的下一子列表继续提取待写入目标磁盘的数据块的地址。
基于上述实施例,本发明实施例可基于各数据块与磁盘间的对应关系,在内存中将各条带所包含的数据块进行重新组合,并可利用与各磁盘对应的列表记录需写入该磁盘的数据块在内存中的地址,因此可利用该列表将待写入对应磁盘的所有数据块合并写入至对应磁盘,从而达到提升磁盘阵列写入速度的效果。
基于上述实施例,考虑到对数据块的重组需额外耗费处理时间,而额外耗费的处理时间将对小规模数据的数据写入造成影响。因此,对数据块的重组也可仅对大规模数据生效。下面对数据规模的判定过程进行详细介绍。在一种可能的情况中,在各条带中确定待写入各磁盘的数据块之前,还可以包括:
S301、判断存储系统是否满足预设大规模写入条件。
需要说明的是,本发明实施例并不限定具体的预设大规模写入条件,例如可根据待写入数据的大小是否大于预设阈值来判定是否满足预设大规模写入条件,也可根据待写入数据对应的条带数量是否大于预设阈值来判定是否满足预设大规模写入条件,可根据实际应用需求进行设定。考虑到本方法对效率的提升度主要与条带数量有关,条带数量越大则对写入效率的提升越高,因此本发明实施例将依照待写入数据对应的条带数量是否大于预设阈值来判定存储系统是否满足预设大规模写入条件。
基于此,判断存储系统是否满足预设大规模写入条件,包括:
步骤81:判断待写入数据对应的条带数量是否大于预设阈值;若是,则进入步骤82;若否,则进入步骤83;
步骤82:判定存储系统满足预设大规模写入条件。
步骤83:判定存储系统不满足预设大规模写入条件。
需要说明的是,本发明实施例并不限定预设阈值的具体数值,可根据实际应用需求进行设定。
S302、若是,则执行在各条带中确定待写入各磁盘的数据块的步骤。
本发明实施例仅在存储系统遭遇大规模写入时,才对相应的待写入数据进行数据块重组。而在确定存储系统不满足大规模写入时,可控制存储系统对各条带进行顺序写入,以避免对小规模数据写入的效率影响。
基于此,在判断存储系统是否满足预设大规模写入条件之后,还可以包括:
S303、若判定存储系统不满足预设大规模写入条件,则依次将各条带中的数据块写入至对应的磁盘。
当然,在进行小规模数据写入时,也需首先将各条带保存至内存,再通过内存向各磁盘进行写入。为提升对各数据块的寻址效率,本发明实施例在将条带保存至内存之后,还可将各数据块在内存中的地址保存在控制页中,以利用控制页进行数据块提取。由于仅需使用控制页进行一次寻址便可得到各个数据块,因此能够显著提升各数据块的寻址效率,进而可提升小规模数据写入对应的写入速度。
基于此,依次将各条带中的数据块写入至对应的磁盘,可以包括:
步骤91:将各条带保存至内存中,并将各条带中的每一数据块的地址保存至控制页;
步骤92:利用控制页从内存中依次提取各条带的数据块并写入至对应的磁盘。
当然,本发明实施例并不限定对条带的存储是否利用单个连续的内存空间还是利用多个离散的内存空间。为提升内存申请效率及利用率,在本发明实施例中,条带的存储可利用多个离散的内存空间来实现,具体的,本发明实施例将为各条带中的每一数据块申请对应的离散内存空间作为数据页,并将各条带中的每一数据块保存至对应的数据页中。进而,可以理解的是,控制页将用于保存各数据页的地址。
基于此,将各条带保存至内存中,并将各条带中的每一数据块的地址保存至控制页,可以包括:
步骤1001:为各条带中的每一数据块申请对应的离散内存空间作为数据页,并将各条带中的每一数据块保存至对应的数据页中;
步骤1002:将各数据页的地址保存至控制页。
基于上述实施例,本发明实施例可在进行数据写入之前,判定存储系统是否满足预设大规模写入条件,并仅在满足该条件时,才对待写入数据条带中的数据块进行重组,并基于重组结果将待写入同一磁盘的所有数据块合并写入至对应磁盘;而在不满足上述条件时,本发明实施例可将待写入数据的条带顺序写入各个磁盘,以此降低对小规模数据写入效率的影响。
基于上述实施例,下面对从存储系统中读取数据的方式进行详细介绍。在一种可能的情况中,本方法还可以包括:
S301、获取数据读取任务,并确定数据读取任务对应的所有待读取条带;
S302、在各待读取条带中确定待从各磁盘中读取的待读取数据块;
S303、从各磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据。
与数据写入类似的,在获取到数据读取任务时,本发明实施例需首先确定该任务对应的所有待读取条带,并预先统计该条带中与各磁盘对应的所有待读取数据块。随后,本发明实施例将从各磁盘中合并读取这些待读取数据块,并将所有待读取数据块进行拼接得到待读取条带,以及将待读取条带进行合并得到待读取数据。由于已预先统计待从各磁盘中读取的待读取数据块,因此在进行数据读取时,各磁盘可独立地、无需等待地进行数据块读取,例如当磁盘1完成对条带1中对应数据块的读取之后,无需等待其他磁盘(如磁盘2、3等)完成对条带1对应数据块的读取,而是可直接开始读取条带2中对应的数据块。这样,由于省去了等待时间,因此实现各磁盘并发读取数据的效果,进而能够显著提升磁盘阵列的数据读取速度。
进一步,可以理解的是,读取出来的数据块同样需暂存于内存中。为提升管理及文件合并效率,本发明实施例同样可采用上述列表管理从各磁盘中读取出的待读取数据块。具体的,本发明实施例可从各磁盘中读取待处理条带对应的待读取数据块,并申请离散内存空间作为数据页存放各待读取数据块;随后可将各待读取数据块的数据页的地址保存至对应磁盘的列表中。进而,在数据拼接时,本发明实施例可利用各磁盘的列表从内存中依次提取待处理条带对应的待读取数据块,并将待处理条带对应的待读取数据块合并得到待处理条带对应的完整数据。
基于此,从各磁盘中读取待处理条带对应的待读取数据块,可以包括:
步骤1101:从各磁盘中合并读取对应的所有待读取数据块,并申请离散内存空间作为数据页存放各待读取数据块;
步骤1102:将各待读取数据块的数据页的地址保存至对应磁盘的列表中;
步骤1103:利用各磁盘的列表从内存中依次提取各待读取条带对应的待读取数据块,并将各待读取条带对应的待读取数据块合并得到待处理条带对应的完整数据。
由于条带的拼接与磁盘的顺序有关,因此本发明实施例采用列表记录各磁盘中读取的待读取数据块,并利用列表进行数据拼接,可显著提升数据拼接的效率,从而提升数据读取效率。应当指出的是,对“列表”、“数据页”的限定描述同上述实施例一致,此处不再赘述。
进一步,可以理解的是,上述数据读取方式由于需执行额外的统计动作,容易降低小规模数据读取的效率。因此本发明实施例在进行数据读取之前,还可判定存储设备是否满足预设大规模读取条件,并仅在满足该条件时才对数据块和磁盘之间的对应关系进行统计,而在不满足该条件时,本发明实施例将对各条带的数据块进行顺序读取,例如先提取条带1的所有数据块,再读取条带2的所有数据块,以此类推。
基于此,在各待读取条带中确定待从各磁盘中读取的待读取数据块之前,还包括:
步骤1201:判断存储系统是否满足预设大规模读取条件;
步骤1202:若是,则执行在各待读取条带中确定待从各磁盘中读取的待读取数据块的步骤;步骤1203:若否,则将首个待读取条带设置为待处理条带;
步骤1204:从各磁盘中读取待处理条带对应的待读取数据块,并将待处理条带对应的待读取数据块合并得到待处理条带对应的完整数据;
步骤1205:将下一待读取条带设置为待处理条带,并进入从各磁盘中读取待处理条带对应的待读取数据块的步骤,直至所有待读取条带均已处理时,将所有待读取条带对应的完整数据进行合并得到待读取数据。
需要说明的是,本发明实施例并不限定具体的预设大规模读取条件,例如可根据待读取数据的大小是否大于预设阈值来判定是否满足预设大规模读取条件,也可根据数据读取任务对应的条带数量是否大于预设阈值来判定是否满足预设大规模读取条件,可根据实际应用需求进行设定。考虑到本方法对效率的提升度主要与条带数量有关,条带数量越大则对读取效率的提升越高,因此本发明实施例将依照数据读取任务对应的条带数量是否大于预设阈值来判定存储系统是否满足预设大规模读取条件。
基于此,判断存储系统是否满足预设大规模读取条件,包括:
步骤1301:判断数据读取任务对应的条带数量是否大于预设阈值;若是,则进入步骤1302;若否,则进入步骤1303;
步骤1302:判定存储系统满足预设大规模读取条件;
步骤1303:判定存储系统不满足预设大规模读取条件。
需要说明的是,本发明实施例并不限定预设阈值的具体数值,可根据实际应用需求进行设定。
基于上述实施例,本发明实施例可通过顺序读取各条带数据块的方式保证较高的数据拼接效率,同时还可利用列表及数据页来提升对各待读取数据块的管理效率。
下面基于详细的例子介绍本发明实施例所提供的数据处理方法。本发明实施例可分别为大规模数据读写和小规模数据读写提供List模式和Discret模式。首先将介绍List模型,该模式的内存优化技术在处理主机的大规模I/O时能够很好地支持分块纵向重组。请参考图2,在该模式下,列表(List)与一个磁盘对应,且每个列表又由多个子列表(Sub-list)构成,当主机下发的写I/O时,存储系统可分配若干个离散的、大小为4KB的内存区域作为存放数据块的数据页及存放各列表的列表页。各条带的数据块将被顺序写入上述数据页,同时其在内存中的地址将被记录至对应磁盘的列表中,例如,与磁盘1对应的List0的第1个项目指向的Data Page用于存放待写入该磁盘的首个数据块strip0的数据,……,第N个Entry指向的Data Page用于存放主机待写入该磁盘的第N-1个数据块stripN-1的数据。
同理,当需要从磁盘读取数据时,存储系统也会在内存中生成上述列表页及数据页,用于存放从各个磁盘中读取出的数据块。为便于理解,请参考图4,图4为本发明实施例所提供的一种条带分割的示意图,其中D0~D5表示RAID组中的5块磁盘,Stripe表示多个条带,图中的每一个块表示磁盘的一个数据块(strip),数字 1、2……表示数据块在列表页中对应项目的编号,这些数字所在的区域表示所对应的项目指向的数据页用于存放磁盘对应数据块的实际数据。
以图4所示的顺序,可以将条带重新组合,以将待写入同一磁盘的所有数据块合并写入对应磁盘。例如,条带1包含3、P、7三个数据块,条带2包含0、4、P、8四个数据块,条带3包含1、5、P三个数据块,条带4包含2、6、P三个数据块。以上数据块可重组为:0、1、2作为第一组、3、4、5、6作为第二组、四个P作为第三组,7、8作为第四组。重组后的数据块在内存中的组织形式可参考图5。可见,List模式内存优化技术使各个硬盘的分块进行纵向重组后(即以上图5的数据组织形式进行管理),然后各个硬盘的硬盘驱动器并发的进行数据写入或读取。因此在处理大规模I/O任务时,使用List模式的内存优化技术可以快速的进行分块纵向重组,进而支持各个硬盘的并发数据写入或读取,从而大幅度提升大规模I/O任务的数据存储、读取性能。
下面介绍Discret模式下的内存优化技术,在Discret模式下可仅设置一个列表,即控制页,该列表用于保存条带中各数据块在内存中的地址。Discret模式下的数据组织如图6所示,图6为本发明实施例所提供的另一种列表的示意图。可见,使用Discret模式下的内存优化可以使寻址只通过一次箭头指向即可找到Data Page中的数据,因此在处理小规模主机I/O任务的时候可以实现更灵活、更快速的寻址。在小规模I/O时不采用分块的纵向重组,而是采用以条带stripe为单元(例如图1中指示的stripe0,可以理解条带stripe为横向,而分块的纵向重组为纵向)进行写盘和读盘操作,因为有了更快速高效的一次寻址方式(如图6中一次箭头指向的寻址方式),所以在以条带stripe为单元进行读写盘操作时,可以明显提升小规模I/O任务的数据存储、读取的性能。
下面对本发明实施例提供的数据处理装置、电子设备及计算机可读存储介质进行介绍,下文描述的数据处理装置、电子设备及计算机可读存储介质与上文描述的数据处理方法可相互对应参照。
请参考图7,图7为本发明实施例所提供的一种数据处理装置的结构框图,该装置可以包括:
获取模块701,用于获取待写入数据包含的所有条带;
确定模块702,用于在各条带中确定待写入各磁盘的数据块;
写入模块703,用于将待写入同一磁盘的所有数据块合并写入至对应的磁盘。
可选地,确定模块702,可以包括:
保存子模块,用于将各条带保存至内存;
地址记录子模块,用于在各条带中确定待写入各磁盘的数据块,并将待写入各磁盘的所有数据块在内存中的地址保存至各磁盘对应的列表;
相应的,写入模块703,可以包括:
写入子模块,用于利用目标磁盘的目标列表从内存中提取出待写入目标磁盘的所有数据块,并合并写入至目标磁盘。
可选地,保存子模块,可以包括:
内存申请单元,用于为各条带中的每一数据块申请对应的离散内存空间作为数据页,并将各条带中的每一数据块保存至对应的数据页。
可选地,地址记录子模块,可以包括:
地址记录单元,用于将待写入各磁盘的所有数据块对应数据页的地址保存至各磁盘对应的列表。
可选地,地址记录子模块,可以包括:
列表创建及写入单元,用于在内存中为各磁盘构造对应的列表,并将待写入各磁盘的所有数据块的地址保存至各磁盘对应的列表;
列表地址记录单元,用于将所有列表的首地址保存至控制页。
可选地,写入子模块,可以包括:
列表提取单元,用于利用控制页从内存中提取目标列表;
写入单元,用于利用目标列表从内存中提取出待写入目标磁盘的所有数据块,并合并写入目标磁盘。
可选地,列表创建及写入单元,可以包括:
第一内存申请子单元,用于申请离散内存空间存放列表对应的首个子列表,并将待写入列表对应磁盘的数据块的地址保存至首个子列表;
第二内存申请子单元,用于当检测到首个子列表已满时,申请下一块离散内存空间存放列表的下一子列表,在首个子列表中保存下一子列表的首地址,并将待写入列表对应磁盘的数据块的地址继续保存至下一子列表。
可选地,写入单元,可以包括:
第一提取子单元,用于从目标列表的首个子列表中提取待写入目标磁盘的数据块的地址,并根据地址从内存中提取对应的数据块;
第二提取子单元,用于当目标列表的首个子列表中的地址均已提取时,根据目标列表的首个子列表中记录的首地址从内存中提取目标列表的下一子列表,并利用目标列表的下一子列表继续提取待写入目标磁盘的数据块的地址。
可选地,该装置还可以包括:
判断模块,用于判断存储系统是否满足预设大规模写入条件;
确定模块702,还用于若是,则执行在各条带中确定待写入各磁盘的数据块的步骤。
可选地,判断模块,可以包括:
判断子模块,用于判断待写入数据对应的条带数量是否大于预设阈值;若是,则判定存储系统满足预设大规模写入条件;若否,则判定存储系统不满足预设大规模写入条件。
可选地,该装置还可以包括:
顺序写入模块,用于若判定存储系统不满足预设大规模写入条件,则依次将各条带中的数据块写入至对应的磁盘。
可选地,顺序写入模块,可以包括:
缓存子模块,用于将各条带保存至内存中,并将各条带中的每一数据块的地址保存至控制页;
顺序写入子模块,用于利用控制页从内存中依次提取各条带的数据块并写入至对应的磁盘。
可选地,缓存子模块,可以包括:
内存申请单元,用于为各条带中的每一数据块申请对应的离散内存空间作为数据页,并将各条带中的每一数据块保存至对应的数据页中;
缓存单元,用于将各数据页的地址保存至控制页。
可选地,获取模块701,可以包括:
获取子模块,用于获取待写入数据;
切分子模块,用于将待写入数据切分为条带,以及将条带切分为与各磁盘对应的数据块。
可选地,该装置还可以包括:
数据读取任务获取模块,用于获取数据读取任务,并确定数据读取任务对应的所有待读取条带;
待读取数据块确定模块,用于在各待读取条带中确定待从各磁盘中读取的待读取数据块;
读取模块,用于从各磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据。
可选地,该装置还可以包括:
大规模读取判断模块,用于判断存储系统是否满足预设大规模读取条件;
待读取数据块确定模块,还用于若是,则执行在各待读取条带中确定待从各磁盘中读取的待读取数据块的步骤;第一设置子模块,用于若否,则将首个待读取条带设置为待处理条带;
读取子模块,用于从各磁盘中读取待处理条带对应的待读取数据块,并将待处理条带对应的待读取数据块合并得到待处理条带对应的完整数据;
第二设置子模块,用于将下一待读取条带设置为待处理条带,并进入从各磁盘中读取待处理条带对应的待读取数据块的步骤,直至所有待读取条带均已处理时,将所有待读取条带对应的完整数据进行合并得到待读取数据。
可选地,大规模读取判断模块,具体用于:
判断数据读取任务对应的条带数量是否大于预设阈值;
若是,则判定存储系统满足预设大规模读取条件;
若否,则判定存储系统不满足预设大规模读取条件。
可选地,读取模块,可以包括:
内存申请子单元,用于从各磁盘中合并读取对应的所有待读取数据块,并申请离散内存空间作为数据页存放各待读取数据块;
保存子单元,用于将各待读取数据块的数据页的地址保存至对应磁盘的列表中;
拼接子模块,用于利用各磁盘的列表从内存中依次提取各待读取条带对应的待读取数据块,并将各待读取条带对应的待读取数据块合并得到待处理条带对应的完整数据。
请参考图8,图8为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器801,用于存储计算机程序;
处理器802,用于执行计算机程序时实现如上述的数据处理方法的步骤。
由于电子设备部分的实施例与数据处理方法部分的实施例相互对应,因此电子设备部分的实施例请参见数据处理方法部分的实施例的描述,这里不再赘述。
请参考图9,图9为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质910,计算机可读存储介质910上存储有计算机程序911,计算机程序911被处理器执行时实现上述任意实施例的数据处理方法的步骤。
由于计算机可读存储介质部分的实施例与数据处理方法部分的实施例相互对应,因此存储介质部分的实施例请参见数据处理方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种数据处理方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (20)
1.一种数据处理方法,其特征在于,包括:
获取待写入数据包含的所有条带;
在各所述条带中确定待写入各磁盘的数据块;
将待写入同一磁盘的所有数据块合并写入至对应的磁盘;
所述在各所述条带中确定待写入各磁盘的数据块,包括:
将各所述条带中的每一数据块离散地保存至内存;
在各所述条带中确定待写入各所述磁盘的数据块,并将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表;
相应的,所述将待写入同一磁盘的所有数据块合并写入至对应的磁盘,包括:
利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入至所述目标磁盘。
2.根据权利要求1所述的数据处理方法,其特征在于,所述将各所述条带中的每一数据块离散地保存至内存,包括:
为各所述条带中的每一数据块申请对应的离散内存空间作为数据页,并将各所述条带中的每一数据块保存至对应的数据页。
3.根据权利要求2所述的数据处理方法,其特征在于,所述将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表,包括:
将待写入各所述磁盘的所有数据块对应数据页的地址保存至各所述磁盘对应的列表。
4.根据权利要求1所述的数据处理方法,其特征在于,所述将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表,包括:
在所述内存中为各所述磁盘构造对应的列表,并将待写入各所述磁盘的所有数据块的地址保存至各所述磁盘对应的列表;
将所有所述列表的首地址保存至控制页。
5.根据权利要求4所述的数据处理方法,其特征在于,所述利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入至所述目标磁盘,包括:
利用所述控制页从所述内存中提取所述目标列表;
利用所述目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入所述目标磁盘。
6.根据权利要求4所述的数据处理方法,其特征在于,所述在所述内存中为各所述磁盘构造对应的列表,并将待写入各所述磁盘的所有数据块的地址保存至各所述磁盘对应的列表,包括:
申请离散内存空间存放所述列表对应的首个子列表,并将待写入所述列表对应磁盘的数据块的地址保存至所述首个子列表;
当检测到所述首个子列表已满时,申请下一块离散内存空间存放所述列表的下一子列表,在所述首个子列表中保存所述下一子列表的首地址,并将待写入所述列表对应磁盘的数据块的地址继续保存至所述下一子列表。
7.根据权利要求6所述的数据处理方法,其特征在于,所述利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,包括:
从所述目标列表的首个子列表中提取待写入所述目标磁盘的数据块的地址,并根据所述地址从所述内存中提取对应的数据块;
当所述目标列表的首个子列表中的地址均已提取时,根据所述目标列表的首个子列表中记录的首地址从内存中提取所述目标列表的下一子列表,并利用所述目标列表的下一子列表继续提取待写入所述目标磁盘的数据块的地址。
8.根据权利要求1所述的数据处理方法,其特征在于,在各所述条带中确定待写入各磁盘的数据块之前,还包括:
判断存储系统是否满足预设大规模写入条件;
若是,则执行所述在各所述条带中确定待写入各磁盘的数据块的步骤。
9.根据权利要求8所述的数据处理方法,其特征在于,所述判断存储系统是否满足预设大规模写入条件,包括:
判断所述待写入数据对应的条带数量是否大于预设阈值;
若是,则判定所述存储系统满足所述预设大规模写入条件;
若否,则判定所述存储系统不满足所述预设大规模写入条件。
10.根据权利要求8所述的数据处理方法,其特征在于,在判断存储系统是否满足预设大规模写入条件之后,还包括:
若判定所述存储系统不满足所述预设大规模写入条件,则依次将各条带中的数据块写入至对应的磁盘。
11.根据权利要求10所述的数据处理方法,其特征在于,所述依次将各条带中的数据块写入至对应的磁盘,包括:
将各所述条带保存至内存中,并将各所述条带中的每一数据块的地址保存至控制页;
利用所述控制页从内存中依次提取各条带的数据块并写入至对应的磁盘。
12.根据权利要求11所述的数据处理方法,其特征在于,所述将各所述条带保存至内存中,并将各所述条带中的每一数据块的地址保存至控制页,包括:
为各所述条带中的每一数据块申请对应的离散内存空间作为数据页,并将各所述条带中的每一数据块保存至对应的数据页中;
将各所述数据页的地址保存至所述控制页。
13.根据权利要求1所述的数据处理方法,其特征在于,所述获取待写入数据包含的所有条带,包括:
获取所述待写入数据;
将所述待写入数据切分为所述条带,以及将所述条带切分为与各所述磁盘对应的数据块。
14.根据权利要求1至13任一项所述的数据处理方法,其特征在于,还包括:
获取数据读取任务,并确定所述数据读取任务对应的所有待读取条带;
在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块;
从各所述磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据。
15.根据权利要求14所述的数据处理方法,其特征在于,在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块之前,还包括:
判断存储系统是否满足预设大规模读取条件;
若是,则执行所述在各所述待读取条带中确定待从各所述磁盘中读取的待读取数据块的步骤;
若否,则将首个待读取条带设置为待处理条带;
从各所述磁盘中读取所述待处理条带对应的待读取数据块,并将所述待处理条带对应的待读取数据块合并得到所述待处理条带对应的完整数据;
将下一待读取条带设置为所述待处理条带,并进入所述从各所述磁盘中读取所述待处理条带对应的待读取数据块的步骤,直至所有待读取条带均已处理时,将所有待读取条带对应的完整数据进行合并得到所述待读取数据。
16.根据权利要求15所述的数据处理方法,其特征在于,所述判断存储系统是否满足预设大规模读取条件,包括:
判断所述数据读取任务对应的条带数量是否大于预设阈值;
若是,则判定所述存储系统满足所述预设大规模读取条件;
若否,则判定所述存储系统不满足所述预设大规模读取条件。
17.根据权利要求14所述的数据处理方法,其特征在于,所述从各所述磁盘中合并读取对应的所有待读取数据块,并对所有磁盘对应的待读取数据块进行拼接得到对应的待读取数据,包括:
从各所述磁盘中合并读取对应的所有待读取数据块,并申请离散内存空间作为数据页存放各所述待读取数据块;
将各所述待读取数据块的数据页的地址保存至对应磁盘的列表中;
利用各所述磁盘的列表从内存中依次提取各所述待读取条带对应的待读取数据块,并将各所述待读取条带对应的待读取数据块合并得到所述待读取条带对应的完整数据。
18.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待写入数据包含的所有条带;
确定模块,用于在各所述条带中确定待写入各磁盘的数据块;
写入模块,用于将待写入同一磁盘的所有数据块合并写入至对应的磁盘;
所述确定模块,包括:
保存子模块,用于将各所述条带中的每一数据块离散地保存至内存;
地址记录子模块,用于在各所述条带中确定待写入各所述磁盘的数据块,并将待写入各所述磁盘的所有数据块在所述内存中的地址保存至各所述磁盘对应的列表;
相应的,所述写入模块,包括:
写入子模块,用于利用目标磁盘的目标列表从所述内存中提取出待写入所述目标磁盘的所有数据块,并合并写入至所述目标磁盘。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述的数据处理方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至17任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024491.2A CN115933994B (zh) | 2023-01-09 | 2023-01-09 | 一种数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024491.2A CN115933994B (zh) | 2023-01-09 | 2023-01-09 | 一种数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115933994A CN115933994A (zh) | 2023-04-07 |
CN115933994B true CN115933994B (zh) | 2023-07-14 |
Family
ID=86552608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310024491.2A Active CN115933994B (zh) | 2023-01-09 | 2023-01-09 | 一种数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115933994B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539407B (zh) * | 2024-01-04 | 2024-03-29 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN111475112A (zh) * | 2020-04-01 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种提升Oracle数据库性能的装置及数据读写方法 |
CN114556309A (zh) * | 2020-12-07 | 2022-05-27 | 深圳市大疆创新科技有限公司 | 内存空间的分配方法、装置及存储介质 |
CN114610651A (zh) * | 2022-03-15 | 2022-06-10 | 展讯通信(上海)有限公司 | 一种数据传输方法、系统、设备及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653609B (zh) * | 2015-12-24 | 2019-08-09 | 中国建设银行股份有限公司 | 基于内存的数据处理方法及装置 |
CN107632780A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于分布式存储系统的条带卷实现方法及其存储架构 |
CN111158599B (zh) * | 2019-12-29 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种写数据的方法、装置、设备及存储介质 |
CN112000589A (zh) * | 2020-07-13 | 2020-11-27 | 北京奇艺世纪科技有限公司 | 一种数据写入方法、数据读取方法、装置及电子设备 |
CN111984204B (zh) * | 2020-09-28 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置及电子设备和存储介质 |
CN112463022B (zh) * | 2020-10-17 | 2022-07-26 | 苏州浪潮智能科技有限公司 | 一种基于磁盘阵列的io处理方法、装置及介质 |
CN113655970A (zh) * | 2021-08-27 | 2021-11-16 | 浪潮商用机器有限公司 | 一种io调度方法、装置、设备及计算机可读存储介质 |
CN114490060A (zh) * | 2022-01-24 | 2022-05-13 | 网易(杭州)网络有限公司 | 内存分配方法、装置、计算机设备和计算机可读存储介质 |
-
2023
- 2023-01-09 CN CN202310024491.2A patent/CN115933994B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN111475112A (zh) * | 2020-04-01 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种提升Oracle数据库性能的装置及数据读写方法 |
CN114556309A (zh) * | 2020-12-07 | 2022-05-27 | 深圳市大疆创新科技有限公司 | 内存空间的分配方法、装置及存储介质 |
CN114610651A (zh) * | 2022-03-15 | 2022-06-10 | 展讯通信(上海)有限公司 | 一种数据传输方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115933994A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186350B (zh) | 混合存储系统及热点数据块的迁移方法 | |
CN103761053B (zh) | 一种数据处理方法和装置 | |
JP3347015B2 (ja) | 頻繁にアクセスされ、ランダムにアドレス指定されるデータの適応局所化方法及び装置 | |
CN104238962B (zh) | 向缓存中写入数据的方法及装置 | |
US9582433B2 (en) | Disk array flushing method and disk array flushing apparatus | |
CN103399823B (zh) | 业务数据的存储方法、设备和系统 | |
CN104765575A (zh) | 信息存储处理方法 | |
CN103955433A (zh) | 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置 | |
CN102722340A (zh) | 数据处理方法、装置及系统 | |
CN115933994B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20240086332A1 (en) | Data processing method and system, device, and medium | |
CN106469123A (zh) | 一种基于nvdimm的写缓存分配、释放方法及其装置 | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储系统 | |
CN110427347A (zh) | 重复数据删除的方法、装置、存储节点及存储介质 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
CN104778100A (zh) | 一种安全备份数据的方法 | |
CN116893786B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN103577349B (zh) | 在高速缓存中选择数据进行刷盘的方法和装置 | |
CN111782153A (zh) | 一种基于读取数据的方法、系统、设备以及介质 | |
CN115687181B (zh) | 一种用于存算处理单元的寻址方法 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US10521156B2 (en) | Apparatus and method of managing multi solid state disk system | |
CN110515562A (zh) | 一种磁盘访问方法及装置 | |
CN103064926B (zh) | 数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |