CN113760187B - 重删io线程生成方法、系统、终端及存储介质 - Google Patents
重删io线程生成方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113760187B CN113760187B CN202110864824.3A CN202110864824A CN113760187B CN 113760187 B CN113760187 B CN 113760187B CN 202110864824 A CN202110864824 A CN 202110864824A CN 113760187 B CN113760187 B CN 113760187B
- Authority
- CN
- China
- Prior art keywords
- pseudo
- random
- deduplication
- seed
- seeds
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种重删IO线程生成方法、系统、终端及存储介质,包括:读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。本发明能够减少对主机内存的使用,使得指纹树管理深度比较平均,更贴合实际使用场景。
Description
技术领域
本发明涉及存储数据重删技术领域,具体涉及一种重删IO线程生成方法、系统、终端及存储介质。
背景技术
重复数据删除是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。随着信息时代数据量的爆炸性增长,数据重删技术作为一项节省存储空间主要技术,在各种存储系统中广泛应用,尤其在全闪存储时代,重删更是一个必备基础功能。
在传统存储在线重删系统中,通常使用指纹对比来判断是否为重删,对于指纹的管理通常使用B+树结构进行管理,在B+树的叶子节点上使用2级链表进行管理关联的存储卷的逻辑地址。Vdbench是一个免费开源的IO负载生产器,在存储系统开发测试过程以及招标验收测试中广泛使用。vdbench在生成重删IO负载时,主要参数有dedupunit(重删数据块大小)、dedupratio(重删率)、dedupsets(重删集合大小,被测卷大小的一个比例,如10%),为了保障重删IO数据一致性,把重删集合缓存在内存当中,vdbench对IO数据是否属于重删格式进行识别,若识别出重删格式的IO数据则从重删集合中摘取IO进程对IO数据进行处理。当重删集合比较大时,容易造成内存占用比较大,当重删数据集合比较小时,就会导致处理重删数据的IO进程过少,进而导致存储端指纹管理的B+树中的指纹分布不均衡,无法模拟真实的重删IO负载。全闪存储中的重删指纹对应数据存储的位置,一个IO进程会匹配一个指纹,若IO进程过少就会导致使用的指纹在B+树中分布不均衡。
本发明提出了一种基于LCG伪随机序列的重删IO生成方法,避免了占用内存大的问题,针对重删IO数据通过使用次数计数的方式,避免B+树中指纹分布不均衡问题。
发明内容
针对现有技术存在的重删数据集合占用内存大且免B+树中指纹分布不均衡的问题,本发明提供一种重删IO线程生成方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种重删IO线程生成方法,包括:
读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。
进一步的,读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量,包括:
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;
根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量。
进一步的,利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列,包括:
将生成的随机数作为种子保存至有序链表;
在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数。
进一步的,预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程,包括:
生成重删IO链表,将当前所有重删IO线程的伪随机序列保存至所述重删IO链表;
将所述重删IO链表保存至伪随机序列重删集合;
利用IO工作负载生成器根据重删率对写入的重删格式的IO数据进行识别;
若所述IO数据使用伪随机序列重删集合,则从所述重删IO链表中随机选取目标伪随机序列,并将目标伪随机序列绑定的重删IO进程作为所述IO数据的处理进程写入待测存储卷。
进一步的,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,包括:
将有序列表中各种子的被引用次数作为各种子的选取权值;
按照选取权值越大对应的被选几率越小的均衡原则选取种子组成伪随机序列。
进一步的,预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程,包括:
预先设定伪随机序列重删集合的重删IO线程数量;
将被写入待测存储卷的重删IO线程和对应的IO链表从伪随机序列重删集合删除;
监控伪随机序列重删集合的实际重删IO线程数量,若实际重删IO线程数量低于所述重删IO线程数量则触发重新生成伪随机序列并根据新的伪随机序列生成重删IO线程。
进一步的,统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子,包括:
采集伪随机种子队列中各种子的被引用次数;
统计被引用次数达到预设深度阈值的无效种子数量;
若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
第二方面,本发明提供一种重删IO线程生成系统,包括:
参数读取单元,用于读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
队列生成单元,用于利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
序列生成单元,用于预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
种子更新单元,用于统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。
进一步的,所述参数读取单元用于:
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;
根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量。
进一步的,所述队列生成单元用于:
将生成的随机数作为种子保存至有序链表;
在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数。
进一步的,所述序列生成单元用于:
生成重删IO链表,将当前所有重删IO线程的伪随机序列保存至所述重删IO链表;
将所述重删IO链表保存至伪随机序列重删集合;
利用IO工作负载生成器根据重删率对写入的重删格式的IO数据进行识别;
若所述IO数据使用伪随机序列重删集合,则从所述重删IO链表中随机选取目标伪随机序列,并将目标伪随机序列绑定的重删IO进程作为所述IO数据的处理进程写入待测存储卷。
进一步的,所述序列生成单元用于:
将有序列表中各种子的被引用次数作为各种子的选取权值;
按照选取权值越大对应的被选几率越小的均衡原则选取种子组成伪随机序列。
进一步的,所述序列生成单元用于:
预先设定伪随机序列重删集合的重删IO线程数量;
将被写入待测存储卷的重删IO线程和对应的IO链表从伪随机序列重删集合删除;
监控伪随机序列重删集合的实际重删IO线程数量,若实际重删IO线程数量低于所述重删IO线程数量则触发重新生成伪随机序列并根据新的伪随机序列生成重删IO线程。
进一步的,所述种子更新单元用于:
采集伪随机种子队列中各种子的被引用次数;
统计被引用次数达到预设深度阈值的无效种子数量;
若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的重删IO线程生成方法、系统、终端及存储介质,通过利用伪随机数生成器生成一个伪随机种子队列(包含种子和种子使用次数)和指定大小的重删IO链表,在I/O负载生成器启动数据测试后,伪随机数生成器根据种子(优选使用次数少的种子)持续生成伪随机序列形成重删IO进程,放入到重删IO链表中,主程序根据重删率不断从重删IO链表中获取重删IO进程写入到存储卷中,通过减少缓存重删集合,减少了对主机内存的使用,同时在种子使用次数比较高的时候,更换重删IO进程,从而减少存储端的指纹树管理深度,并使得存储端的指纹树管理深度比较平均,更贴合实际使用场景。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的方法的另一示意性流程图。
图3是本发明一个实施例的系统的示意性框图。
图4为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种重删IO线程生成系统。
如图1所示,该方法包括:
步骤110,读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
步骤120,利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
步骤130,预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
步骤140,统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。
为了便于对本发明的理解,下面以本发明重删IO线程生成方法的原理,结合实施例中对重删IO线程进行生成的过程,对本发明提供的重删IO线程生成方法做进一步的描述。
请参考图2,具体的,所述重删IO线程生成方法包括:
S1、读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量。
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量。
假设被测存储卷大小为128M,dedupunit=128K、dedupratio=2、dedupsets=10%、deduptype=0x02,dedupdeep=64。读取vdbench测试配置文件,解析重删相关的参数,重删数据块大小128K、重删率2:1、重删集合大小为128M/128K=1024*0.1=102。
基于重删集合的大小为102,确定种子数量为102。
S2、利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列。
将生成的随机数作为种子保存至有序链表;在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数。
利用伪随机数生成器生成一个大小为102的伪随机种子队列(一般为数字1到102),该队列为一个有序链表,链表中每个节点包含伪随机种子以及伪随机种子使用次数。
S3、预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程。
生成重删IO链表,将当前所有重删IO线程的伪随机序列保存至所述重删IO链表;将所述重删IO链表保存至伪随机序列重删集合;利用IO工作负载生成器根据重删率对写入的重删格式的IO数据进行识别;若所述IO数据使用伪随机序列重删集合,则从所述重删IO链表中随机选取目标伪随机序列,并将目标伪随机序列绑定的重删IO进程作为所述IO数据的处理进程写入待测存储卷。
将有序列表中各种子的被引用次数作为各种子的选取权值;按照选取权值越大对应的被选几率越小的均衡原则选取种子组成伪随机序列。
具体的,生成一个大小为20的IO链表,并根据随机选择伪随机种子队列中的种子生成20个伪随机序列放入到IO链表中,并把对应种子的使用次数加1。为伪随机序列创建重删IO线程,一个伪随机序列对应一个重删IO线程。所有重删IO线程保存至伪随机序列重删集合。
vdbench启动测试,根据设定的重删率大小2:1,判断是写入正常格式的IO数据,还是写入重删格式的IO数据(具体的判断规则为现有技术,此处不再详细介绍)。如果写入正常格式的IO数据,则从正常IO链表中摘取处理线程并写入存储卷,如果是重删格式的IO数据,则判断是使用缓存重删集合还是使用伪随机序列重删集合,如果是使用缓存重删集合,则从缓存的重删IO中摘取并写入存储卷,如果是使用伪随机序列重删集合,则从生成的大小为20的IO链表中读取重删IO线程并写入存储卷。
S4、统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。
采集伪随机种子队列中各种子的被引用次数;统计被引用次数达到预设深度阈值的无效种子数量;若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
当使用伪随机序列重删集合时,持续根据伪随机种子队列中的使用次数少的种子不断生成对应的伪随机序列,并放入到其生成的大小为20的IO链表中。当伪随机种子队列中的80%以上的种子使用次数超过设定的深度64时,利用伪随机数生成器更换伪随机种子队列。
如图3所示,该系统300包括:
参数读取单元310,用于读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
队列生成单元320,用于利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
序列生成单元330,用于预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
种子更新单元340,用于统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子。
可选地,作为本发明一个实施例,所述参数读取单元用于:
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;
根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量。
可选地,作为本发明一个实施例,所述队列生成单元用于:
将生成的随机数作为种子保存至有序链表;
在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数。
可选地,作为本发明一个实施例,所述序列生成单元用于:
生成重删IO链表,将当前所有重删IO线程的伪随机序列保存至所述重删IO链表;
将所述重删IO链表保存至伪随机序列重删集合;
利用IO工作负载生成器根据重删率对写入的重删格式的IO数据进行识别;
若所述IO数据使用伪随机序列重删集合,则从所述重删IO链表中随机选取目标伪随机序列,并将目标伪随机序列绑定的重删IO进程作为所述IO数据的处理进程写入待测存储卷。
可选地,作为本发明一个实施例,所述序列生成单元用于:
将有序列表中各种子的被引用次数作为各种子的选取权值;
按照选取权值越大对应的被选几率越小的均衡原则选取种子组成伪随机序列。
可选地,作为本发明一个实施例,所述序列生成单元用于:
预先设定伪随机序列重删集合的重删IO线程数量;
将被写入待测存储卷的重删IO线程和对应的IO链表从伪随机序列重删集合删除;
监控伪随机序列重删集合的实际重删IO线程数量,若实际重删IO线程数量低于所述重删IO线程数量则触发重新生成伪随机序列并根据新的伪随机序列生成重删IO线程。
可选地,作为本发明一个实施例,所述种子更新单元用于:
采集伪随机种子队列中各种子的被引用次数;
统计被引用次数达到预设深度阈值的无效种子数量;
若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于
执行本发明实施例提供的重删IO线程生成方法。
其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器410可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过利用伪随机数生成器生成一个伪随机种子队列(包含种子和种子使用次数)和指定大小的重删IO链表,在I/O负载生成器启动数据测试后,伪随机数生成器根据种子(优选使用次数少的种子)持续生成伪随机序列形成重删IO进程,放入到重删IO链表中,主程序根据重删率不断从重删IO链表中获取重删IO进程写入到存储卷中,通过减少缓存重删集合,减少了对主机内存的使用,同时在种子使用次数比较高的时候,更换重删IO进程,从而减少存储端的指纹树管理深度,并使得存储端的指纹树管理深度比较平均,更贴合实际使用场景,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种重删IO线程生成方法,其特征在于,包括:
读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子;
读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量,包括:
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;
根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量;
利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列,包括:
将生成的随机数作为种子保存至有序链表;
在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数;统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子,包括:
采集伪随机种子队列中各种子的被引用次数;
统计被引用次数达到预设深度阈值的无效种子数量;
若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
2.根据权利要求1所述的方法,其特征在于,预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程,包括:
生成重删IO链表,将当前所有重删IO线程的伪随机序列保存至所述重删IO链表;
将所述重删IO链表保存至伪随机序列重删集合;
利用IO工作负载生成器根据重删率对写入的重删格式的IO数据进行识别;
若所述IO数据使用伪随机序列重删集合,则从所述重删IO链表中随机选取目标伪随机序列,并将目标伪随机序列绑定的重删IO进程作为所述IO数据的处理进程写入待测存储卷。
3.根据权利要求2所述的方法,其特征在于,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,包括:
将有序列表中各种子的被引用次数作为各种子的选取权值;
按照选取权值越大对应的被选几率越小的均衡原则选取种子组成伪随机序列。
4.根据权利要求2所述的方法,其特征在于,预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程,包括:
预先设定伪随机序列重删集合的重删IO线程数量;
将被写入待测存储卷的重删IO线程和对应的IO链表从伪随机序列重删集合删除;
监控伪随机序列重删集合的实际重删IO线程数量,若实际重删IO线程数量低于所述重删IO线程数量则触发重新生成伪随机序列并根据新的伪随机序列生成重删IO线程。
5.一种重删IO线程生成系统,其特征在于,包括:
参数读取单元,用于读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量;
队列生成单元,用于利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列;
序列生成单元,用于预先设定重删IO线程的伪随机序列长度,根据伪随机序列长度从伪随机种子队列中按照均衡原则随机选取相应数量的种子组成伪随机序列,根据所述伪随机序列生成重删IO线程;
种子更新单元,用于统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子;
读取I/O负载生成器配置文件中的重删参数,并根据所述重删参数确定伪随机种子队列的种子数量,包括:
读取I/O负载生成器配置文件中的重删数据块大小、重删率和被测存储卷的大小;
根据被测存储卷的大小和重删数据块大小确定重删集合大小,并将重删集合大小作为伪随机种子队列的种子数量;
利用伪随机数生成器生成所述种子数量的随机数,随机数作为种子组成伪随机种子队列,包括:
将生成的随机数作为种子保存至有序链表;
在有序链表中记录各种子的被引用次数,所述被引用次数为种子被选中组成伪随机序列的次数;统计伪随机种子队列中各种子被选中组成伪随机序列的引用情况,若引用情况达到更新条件,则利用伪随机数生成器更新伪随机种子队列的种子,包括:
采集伪随机种子队列中各种子的被引用次数;
统计被引用次数达到预设深度阈值的无效种子数量;
若所述无效种子数量在伪随机种子队列的占比达到预设占比阈值,则触发伪随机数生成器重新生成所述种子数量的随机数,并将伪随机种子队列中的现有种子替换为新生成的随机数。
6.一种电子终端,其特征在于,包括:
存储器,用于存储重删IO线程生成程序;
处理器,用于执行所述重删IO线程生成程序时实现如权利要求1-4任一项所述重删IO线程生成方法的步骤。
7.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110864824.3A CN113760187B (zh) | 2021-07-29 | 2021-07-29 | 重删io线程生成方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110864824.3A CN113760187B (zh) | 2021-07-29 | 2021-07-29 | 重删io线程生成方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760187A CN113760187A (zh) | 2021-12-07 |
CN113760187B true CN113760187B (zh) | 2023-08-18 |
Family
ID=78788107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110864824.3A Active CN113760187B (zh) | 2021-07-29 | 2021-07-29 | 重删io线程生成方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760187B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114163A (zh) * | 2022-06-30 | 2022-09-27 | 苏州浪潮智能科技有限公司 | 一种文件重删的负载生产方法、装置、设备及存储介质 |
CN115878048B (zh) * | 2023-02-27 | 2023-05-12 | 珠海妙存科技有限公司 | 一种用于NAND Flash随机化的随机序列种子生成方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630834A (zh) * | 2014-11-07 | 2016-06-01 | 中兴通讯股份有限公司 | 一种实现重复数据删除的方法及装置 |
CN106406762A (zh) * | 2016-09-19 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种重复数据删除方法及装置 |
CN109933303A (zh) * | 2019-02-28 | 2019-06-25 | 中国人民解放军陆军工程大学 | 一种多用户高速伪随机序列发生器电路及其工作方法 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10310904B2 (en) * | 2014-11-26 | 2019-06-04 | Dropbox, Inc. | Distributed technique for allocating long-lived jobs among worker processes |
-
2021
- 2021-07-29 CN CN202110864824.3A patent/CN113760187B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630834A (zh) * | 2014-11-07 | 2016-06-01 | 中兴通讯股份有限公司 | 一种实现重复数据删除的方法及装置 |
CN106406762A (zh) * | 2016-09-19 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种重复数据删除方法及装置 |
CN109933303A (zh) * | 2019-02-28 | 2019-06-25 | 中国人民解放军陆军工程大学 | 一种多用户高速伪随机序列发生器电路及其工作方法 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113760187A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10739996B1 (en) | Enhanced garbage collection | |
CN113760187B (zh) | 重删io线程生成方法、系统、终端及存储介质 | |
US9052826B2 (en) | Selecting storage locations for storing data based on storage location attributes and data usage statistics | |
US7146455B2 (en) | System and method for optimized access to memory devices requiring block writing | |
CN105302478B (zh) | 一种数据存储方法及电子设备 | |
CN107168640A (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
CN107168885A (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
CN107168639A (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
EP3161609A1 (en) | Storage device, program, and information processing method | |
CN107168884A (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
US8396840B1 (en) | System and method for targeted consistency improvement in a distributed storage system | |
EP2770446A1 (en) | Data processing method and device | |
CN107122130B (zh) | 一种数据重删方法及装置 | |
CN107209714A (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
CN109981702B (zh) | 一种文件存储方法及系统 | |
CN111857592A (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
CN110209502A (zh) | 一种信息存储方法、装置、电子设备及存储介质 | |
CN106603673A (zh) | 基于纠删码的细粒度云存储调度方法 | |
CN113126887A (zh) | 用于重建盘阵列的方法、电子设备和计算机程序产品 | |
CN109446225A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN110187836A (zh) | 一种数据删除方法、装置、计算机及存储介质 | |
CN110427394B (zh) | 数据操作方法及装置 | |
CN116339643B (zh) | 一种磁盘阵列的格式化方法、装置、设备和介质 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN115860709A (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 |