CN115729955A - 一种热数据读取方法及相关装置 - Google Patents
一种热数据读取方法及相关装置 Download PDFInfo
- Publication number
- CN115729955A CN115729955A CN202211486649.XA CN202211486649A CN115729955A CN 115729955 A CN115729955 A CN 115729955A CN 202211486649 A CN202211486649 A CN 202211486649A CN 115729955 A CN115729955 A CN 115729955A
- Authority
- CN
- China
- Prior art keywords
- target
- red
- data
- black
- black tree
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种热数据读取方法及相关装置,涉及计算机技术领域。本申请中,基于目标数据的目标计数标识,确定目标数据为热数据;按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号;基于目标编号,从红黑树集中获得目标红黑树;基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。采用这种方式,通过可变计数标识来区分冷热数据,提高了对热数据筛选的准确度,采用哈希算法将各热数据的物理地址存放到红黑树中,在热数据数量庞大的情况下,也能加快热数据的查找速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种热数据读取方法及相关装置。
背景技术
固态硬盘(Solid State Disk,SSD)是一种电脑外部存储设备,通常使用闪存作为存储介质,在基于闪存的固态硬盘中,存储单元包括:单层单元闪存(Single Level Cell,SLC)、多层单元闪存(Multi Level Cell,MLC)和三层单元闪存(Trinary Level Cell,TLC),其中,SLC的每个存储单元只能存储一位数据,MLC的每个存储单元可以存储两位数据,TLC的每个存储单元可以存储三位数据,SLC的存储容量最小,但读写速度最快,反之,TLC的存储容量最大,读写速度最慢。
固态硬盘中,被主机频繁访问的在线类数据称为热数据,不经常访问的离线类数据称为冷数据,相关技术下,为了提高热数据的访问速度,可以采用SLC cache读取方式,即将MLC/TLC的一部分容量模拟为SLC cache,从而达到SLC模式下数据的读取速度。
然而,当SLC cache填满之后,数据将以MLC/TLC的写入方式迁移至MLC/TLC模式的区块中,数据的读写速度就会降到MLC/TLC模式的读写速度,并且,数据迁移会增加SLCcache的擦除次数,从而影响存储单元的使用寿命。
针对上述问题,现有技术提出了对冷热数据建立不同的索引机制,通过提高热数据的查找速度,来提高固态硬盘热数据的读取性能,具体操作是将近期写入固态硬盘的数据归类为热数据,并用哈希索引记录热数据的存储地址。
然而,仅仅将近期写入固态硬盘的数据归类为热数据,会导致对热数据的筛选不够准确,另一方面,如果热数据的数量过多,哈希索引表会出现过多的碰撞现象,进而退化为链表,大大降低热数据的索引速度。
有鉴于此,需要针对上述问题提出一种新的热数据读取方法。
发明内容
本申请提供了一种热数据读取方法及相关装置,用以提高热数据的读取速度。
第一方面,本申请实施例提供了一种热数据读取方法,所述方法包括:
基于目标数据的目标计数标识,确定目标数据为热数据,目标计数标识表征:目标数据在设定时长内被读取的次数;
按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号,目标红黑树中保存有目标数据的目标物理地址;
基于目标编号,从红黑树集中获得目标红黑树,其中,红黑树集中包括M个红黑树,M与热数据的个数呈正相关;
基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。
第二方面,本申请实施例还提供了一种热数据读取装置,所述装置包括:
筛选模块,用于基于目标数据的目标计数标识,确定目标数据为热数据,目标计数标识表征:目标数据在设定时长内被读取的次数;
移位模块,用于按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号,目标红黑树中保存有目标数据的目标物理地址;
获取模块,用于基于目标编号,从红黑树集中获得目标红黑树,其中,红黑树集中包括M个红黑树,M与热数据的个数呈正相关;
定位模块,用于基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。
可选的,基于目标数据的目标计数标识,确定目标数据为热数据时,筛选模块用于:
在设定时长内,每当目标数据被读取一次,将目标数据的目标计数标识加1,直到目标计数标识等于预设的第一热数据阈值时,停止计数,并确定目标数据为热数据。
可选的,筛选模块还用于:
在设定时长截止时,获取目标数据的目标计数标识;
若目标计数标识小于第二热数据阈值,则将目标计数标识清零,并在下一个设定时长内,重新开始计数。
若目标数据的目标计数标识不小于第二热数据阈值,且小于第一热数据阈值,则在下一个设定时长内,继续计数。
可选的,确定目标数据为热数据之后,筛选模块还用于:
若目标数据在后续N次读操作中,未被读取过,则将目标计数标识减1;
若目标数据对应的物理块被擦除,则将目标计数标识清零;
若目标计数标识减少至小于预设的第二热数据阈值,或者,目标计数标识被清零,则将目标数据更新为冷数据,并将目标数据的目标物理地址从目标红黑树中删除。
可选的,红黑树集,是获取模块采用以下方式获得的:
基于预设的红黑树的高度,确定红黑树可存放的单元数量,以及基于热数据的个数,确定红黑树的个数M;
基于各热数据的物理地址、红黑树可存放的单元数量和红黑树的个数M,采用预设的哈希算法,确定各红黑树的编号;
将各热数据的物理地址插入到对应的各红黑树中;
将各红黑树的首地址和编号保存至哈希表中,获得红黑树集。
可选的,将各热数据的物理地址插入到对应的各红黑树中时,获取模块还用于:
在将一个热数据的物理地址插入到对应的一个红黑树时,执行以下操作:
若一个红黑树为空,则将一个热数据的物理地址作为一个红黑树的根节点,插入到一个红黑树中;
若一个红黑树非空,且一个热数据的物理地址小于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的左子树中;
若一个红黑树非空,且一个热数据的物理地址大于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的右子树中。
第三方面,本申请实施例提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一所述方法的步骤。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如第一方面所述的方法。
本申请实施例中,基于目标数据的目标计数标识,确定目标数据为热数据;按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号;基于目标编号,从红黑树集中获得目标红黑树;基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。
采用这种方式,通过计数标识来区分冷热数据,提高了对热数据筛选的准确度,采用哈希算法将各热数据的物理地址存放到红黑树中,在热数据数量庞大的情况下,也能加快热数据的查找速度。
附图说明
图1为本申请实施例中系统架构示意图;
图2为本申请实施例中系统架构下热数据读取的详细流程图;
图3为本申请实施例中系统架构下红黑树集的创建流程图;
图4为本申请实施例中目标热数据的物理地址插入目标红黑树的流程图;
图5为本申请实施例中提供的一种热数据物理地址插入非空红黑树的示意图;
图6为本申请实施例中提供的一种热数据物理地址插入多节点红黑树的示意图;
图7为本申请实施例中提供的一种经过平衡调整后的红黑树示意图;
图8为本申请实施例中提供的另一种热数据物理地址插入非空红黑树的示意图;
图9为本申请实施例中提供的另一种热数据物理地址插入多节点红黑树的示意图;
图10为本申请实施例中提供的另一种经过平衡调整后的红黑树示意图;
图11为本申请实施例中提供的一种实际应用中热数据读取的详细流程图;
图12为本申请实施例中提供的一种实际应用中热数据读取的场景示意图;
图13为本申请实施例中一种热数据读取装置的结构示意图;
图14为本申请实施例中一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
(1)数据单元块(Data Block Unit,DBU):固态硬盘中数据写入的最小单元。
(2)逻辑地址(Logical Allocation Address,LAA):在有地址变换功能的计算机中,访内指令给出的地址(操作数)叫逻辑地址。
(3)物理地址(Physical Allocation Address,PAA):逻辑地址经过寻址方式的计算或变换得到的内存储器中的实际有效地址,叫物理地址,即用于描述各DBU物理位置的地址。
(4)红黑树:是一种自平衡的二叉查找树,能够在较小的时间复杂度内完成数据的查找、增加、删除等操作。
(5)哈希算法:用特定的函数将一组关键字映射到有限的地址区间上,哈希算法是信息存储和查询所用的一项基本技术,其主要优点是运算简单,预处理时间较短,内存消耗低,匹配查找速度比较快,便于维护和刷新,支持匹配规则数多等。
下面结合附图对本申请优选的实施方式进行详细介绍。
参阅图1所示,本申请实施例中,包含有一个哈希表100,和多个红黑树101,其中,哈希表100中保存着各红黑树101的编号和首地址,各红黑树101的编号是由各热数据的物理地址、红黑树101可存放的单元数量和红黑树101的个数M,采用预设的哈希算法映射而来的,各红黑树101中保存着各热数据的物理地址,当主机需读取固态硬盘中的目标热数据时,先通过热数据的逻辑地址,获取对应的红黑树编号,而后在哈希表中找到对应编号的红黑树的首地址,从中获取目标热数据的物理地址,最后根据物理地址读取目标数据。
基于上述系统架构,参阅图2所示,本申请实施例中,HOST读取固态硬盘热数据的详细流程如下:
步骤201:基于目标数据的目标计数标识,确定目标数据为热数据。
其中,目标计数标识表征:目标数据在设定时长内被读取的次数。
具体的,本申请实施例中,在设定时长内,每当目标数据被读取一次,将目标数据的目标计数标识加1,直到目标计数标识等于预设的第一热数据阈值时,停止计数,并确定目标数据为热数据。
例如,在半年内,每当数据A被HOST读取一次,其计数标识加1,当计数标识增加到第一热数据阈值1000时,计数标识不再增加,数据A被确定为热数据,并且将其物理地址保存至对应的红黑树中。
进一步的,在设定时长截止时,即计数时长满半年时,获取目标数据的目标计数标识,包括以下两种情况:
情况一:若目标计数标识小于第二热数据阈值,则将目标计数标识清零,并在下一个设定时长内,重新开始计数。
例如,若数据A的计数标识为500,小于第二热数据阈值800,则将数据A的计数标识清零,在下一个半年内被HOST读取时,重新开始计数。
情况二:若目标数据的目标计数标识不小于第二热数据阈值,且小于第一热数据阈值,则在下一个设定时长内,继续计数。
例如,若数据A的计数标识为900,大于第二热数据阈值800,小于第一热数据阈值1000,则在下一个半年内,继续从900开始计数。
另一方面,本申请实施例中,当数据A的计数标识等于1000,被确定为热数据之后,其计数标识有可能会减少,包括但不限于以下两种情形:
情形一:若目标数据在后续N次读操作中,未被读取过,则将目标计数标识减1。
例如,假设N=200,若数据A在后续20次读操作中,未被读取过,则将其计数标识减1,即HOST每进行一轮20次读操作,若数据A未被读取过,则其计数标识都要减1。
情形二:若目标数据对应的物理块被擦除,则将目标计数标识清零。
例如,由于固态硬盘中数据A对应的物理块被擦除时,数据A对应的计数标识将被清零。
进一步的,若目标计数标识减少至小于预设的第二热数据阈值,或者,目标计数标识被清零,则将目标数据更新为冷数据,并将目标数据的目标物理地址从目标红黑树中删除。
例如,若数据A的计数标识减少至小于第二热数据阈值800,或计数标识被清零,则HOST将数据A更新为冷数据,并将数据A的物理地址从其对应的红黑树中删除。
基于步骤201所述,每个DBU对应一个计数标识,用于表征DBU中数据的“温度”,提高了对热数据筛选的准确度,同时,当计数标识减少至小于第二热数据阈值时,才将该数据更新为冷数据,提供了热数据向冷数据切换的缓冲期,能够避免频繁对红黑树进行插入和删除的操作。
步骤202:按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号。
其中,目标红黑树中保存有目标数据的目标物理地址。
例如,假设数据A的逻辑地址为LAA_a,且设定步长为4,则数据A对应的红黑树编号为ID=LAA_a>>4,即数据A的逻辑地址LAA_a右移4位,获得数据A对应的红黑树的编号ID。
步骤203:基于目标编号,从红黑树集中获得目标红黑树。
其中,红黑树集中包括M个红黑树,M与热数据的个数呈正相关。
具体的,参阅图3所示,本申请实施例中,红黑树集是采用以下方式获得的:
步骤301:基于预设的红黑树的高度,确定红黑树可存放的单元数量,以及基于热数据的个数,确定红黑树的个数M。
例如,假设预设的红黑树高度为H,则计算出红黑树可存放的单元数量为CNT,假设当前热数据的个数为NUM,则红黑树的个数为:M=NUM/CNT。
步骤302:基于各热数据的物理地址、红黑树可存放的单元数量和红黑树的个数M,采用预设的哈希算法,确定各红黑树的编号。
例如,用PAA表示各热数据的物理地址,则通过预设的哈希算法:ID=(PAA/CNT)%M,可以获得各热数据对应的各红黑树的编号ID。
步骤303:将各热数据的物理地址插入到对应的各红黑树中。
步骤304:将各红黑树的首地址和编号保存至哈希表中,获得红黑树集。
具体的,执行步骤303时,参阅图4所示,在将一个热数据的物理地址插入到对应的一个红黑树时,执行以下操作:
步骤3031:若一个红黑树为空,则将一个热数据的物理地址作为一个红黑树的根节点,插入到一个红黑树中。
例如,若ID=1的红黑树为空,则将数据A的物理地址PAA_a插入到ID=1的红黑树时,PAA_a为该红黑树的根节点,且根节点为黑色。
步骤3032:若一个红黑树非空,且一个热数据的物理地址小于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的左子树中。
例如,参阅图5所示,若ID=1的红黑树中已经存在一个黑色根节点PAA_1,且数据A的物理地址PAA_a小于PAA_1,则将PAA_a作为根节点PAA_1的左子树,插入到该红黑树中,且PAA_a对应的节点为红色(附图中浅色20%的纯色填充表示黑色,深色10%的纯色填充表示红色)。
又例如,参阅图6所示,若ID=1的红黑树中已经存在两个节点PAA_1和PAA_2,其中PAA_2<PAA_1,在PAA_a<PAA_1的情况下,进一步判断若PAA_a<PAA_2,则将PAA_a作为PAA_2的左子树,插入到该红黑树中,且PAA_a节点为红色,此时,红黑树失衡,需将该红黑树进行右旋,参阅图7所示,将PAA_2节点作为根节点,并修改为黑色,PAA_1节点作为PAA_2节点的右子节点,并修改为红色。
步骤3033:若一个红黑树非空,且一个热数据的物理地址大于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的右子树中。
例如,参阅图8所示,若ID=1的红黑树中已经存在一个黑色根节点PAA_3,且数据A的物理地址PAA_a大于PAA_3,则将PAA_a作为根节点PAA_3的右子树,插入到该红黑树中,且PAA_a对应的节点为红色。
同理,参阅图9所示,若ID=1的红黑树中已经存在两个节点PAA_3和PAA_4,其中PAA_4>PAA_3,在PAA_a>PAA_3的情况下,进一步判断若PAA_a>PAA_4,则将PAA_a作为PAA_4的右子树,插入到该红黑树中,且PAA_a节点为红色,此时,红黑树失衡,需将该红黑树进行左旋,参阅图10所示,将PAA_4节点作为根节点,并修改为黑色,PAA_3节点作为PAA_4节点的左子节点,并修改为红色。
其中,红黑树的平衡调整为一项现有技术,此处不再赘述。
基于步骤203所述,采用红黑树的数据结构来存储热数据的物理地址,能够加快热数据的查找速度,同时,用哈希算法对各红黑树进行编号,能够加快各红黑树的查找速度,由于红黑树的个数与热数据的个数呈正相关,即热数据数量越多,红黑树的个数也越多,因此能够避免哈希冲突的产生,在热数据数量庞大的情况下,该方法仍能具有较高的热数据查找速度,并且,在获取一个热数据的物理地址时,其所在的红黑树会被读取到内存中,这样,能够进一步加快物理地址保存于该红黑树中其他热数据的查找速度。
步骤204:基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。
例如,基于算法offset=LAA_a&((1<<4)-1),即将设定步长4左移1位后减1,其结果再与数据A的逻辑地址LAA_a相与,获得数据A的物理地址所存放的节点相对于其对应红黑树首地址的偏移量offset,红黑树首地址加上偏移量offset,即可在红黑树中找到数据A的物理地址PAA_a,最终,根据物理地址PAA_a在固态硬盘中获得数据A。
可选的,上述实施例中,第一热数据阈值、第二热数据阈值,以及设定时长的取值,仅用于说明本申请,具体应视实际情况而定,同时,设定步长的选择与计算机的寻址位数,以及红黑树的存储方式有关,具体视实际情况而定。
下面通过两个具体的应用场景对上述实施例作出进一步详细说明。
参阅图11所示,本申请实施例中热数据读取的具体流程如下:
假设HOST欲读取逻辑地址为0x11的数据B,则HOST首先执行步骤1101:
步骤1101:判断数据B是否是热数据,若是,则执行步骤1102,否则执行步骤1106。
具体的,参阅图12所示,数据B的计数标识为1000,则确定数据B是热数据。
步骤1102:根据数据B的逻辑地址获得目标红黑树的编号,执行步骤1103。
具体的,参阅图12所示,数据B的逻辑地址0x11右移4位,获得目标红黑树的编号为ID=1。
步骤1103:根据数据B的逻辑地址获得目标偏移量,执行步骤1104。
具体的,参阅图12所示,设定步长4左移1位的结果减1,和数据B的逻辑地址0x11进行与运算,获得目标偏移量offset=0x01。
步骤1104:根据目标红黑树的首地址和目标偏移量,获得数据B的物理地址,执行步骤1105。
具体的,目标红黑树的首地址0xA1加上目标偏移量0x01,获得数据B的物理地址所存放的节点地址0xA2,进而获得数据B的物理地址PAA_b。
步骤1105:根据数据B的物理地址,在固态硬盘中读取数据B。
步骤1106:根据传统寻址方式获得数据B的物理地址,执行步骤1105。
另一方面,本申请实施例中热数据的物理地址插入红黑树的具体流程如下:
假设半年时长截止之前,数据C对应的计数标识为999,且HOST又读取一次数据C,此刻数据C的计数标识为1000,等于第一热数据阈值,则数据C为热数据,需将其物理地址保存至对应的红黑树中。
首先通过ID=(PAA_c/CNT)%M获得数据C对应的目标红黑树的编号ID,具体的,假设数据C的物理地址PAA_c=0xC580,每个红黑树可存放的单元数量CNT=4096,红黑树个数M=250,则数据C对应的目标红黑树的编号ID=(0xC580/4096)%250=200。
在哈希表中获得ID=200的红黑树的首地址,从根节点开始比较,若PAA_c小于根节点中保存的物理地址,则将PAA_c保存至根节点的左子树中,否则,保存至根节点的右子树,进一步的,若根节点的左子树或右子树还有下一层子节点,则继续进行下一层的比较,最后将PAA_c插入目标红黑树后,需判断新插入的PAA_c节点是否使得红黑树失衡,并对其进行平衡调整。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
基于相同技术构思,参阅图13所示,本申请实施例还提供了一种热数据读取装置,该装置包括:
筛选模块1301,用于基于目标数据的目标计数标识,确定目标数据为热数据,目标计数标识表征:目标数据在设定时长内被读取的次数;
移位模块1302,用于按照设定步长,对目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号,目标红黑树中保存有目标数据的目标物理地址;
获取模块1303,用于基于目标编号,从红黑树集中获得目标红黑树,其中,红黑树集中包括M个红黑树,M与热数据的个数呈正相关;
定位模块1304,用于基于目标逻辑地址与设定步长,获得目标偏移量,并基于目标红黑树的首地址和目标偏移量,从目标红黑树中获得目标物理地址,以及根据目标物理地址,获得目标数据。
可选的,基于目标数据的目标计数标识,确定目标数据为热数据时,筛选模块1301用于:
在设定时长内,每当目标数据被读取一次,将目标数据的目标计数标识加1,直到目标计数标识等于预设的第一热数据阈值时,停止计数,并确定目标数据为热数据。
可选的,筛选模块1301还用于:
在设定时长截止时,获取目标数据的目标计数标识;
若目标计数标识小于第二热数据阈值,则将目标计数标识清零,并在下一个设定时长内,重新开始计数。
若目标数据的目标计数标识不小于第二热数据阈值,且小于第一热数据阈值,则在下一个设定时长内,继续计数。
可选的,确定目标数据为热数据之后,筛选模块1301还用于:
若目标数据在后续N次读操作中,未被读取过,则将目标计数标识减1;
若目标数据对应的物理块被擦除,则将目标计数标识清零;
若目标计数标识减少至小于预设的第二热数据阈值,或者,目标计数标识被清零,则将目标数据更新为冷数据,并将目标数据的目标物理地址从目标红黑树中删除。
可选的,红黑树集,是获取模块1303采用以下方式获得的:
基于预设的红黑树的高度,确定红黑树可存放的单元数量,以及基于热数据的个数,确定红黑树的个数M;
基于各热数据的物理地址、红黑树可存放的单元数量和红黑树的个数M,采用预设的哈希算法,确定各红黑树的编号;
将各热数据的物理地址插入到对应的各红黑树中;
将各红黑树的首地址和编号保存至哈希表中,获得红黑树集。
可选的,将各热数据的物理地址插入到对应的各红黑树中时,获取模块1303还用于:
在将一个热数据的物理地址插入到对应的一个红黑树时,执行以下操作:
若一个红黑树为空,则将一个热数据的物理地址作为一个红黑树的根节点,插入到一个红黑树中;
若一个红黑树非空,且一个热数据的物理地址小于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的左子树中;
若一个红黑树非空,且一个热数据的物理地址大于一个红黑树的根节点中保存的物理地址,则将一个热数据的物理地址,插入到一个红黑树的根节点的右子树中。
基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备可实现本申请上述实施例提供的热数据读取的方法流程。
在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。
参阅图14所示,该电子设备可包括:
至少一个处理器1401,以及与至少一个处理器1401连接的存储器1402,本申请实施例中不限定处理器1401与存储器1402之间的具体连接介质,图14中是以处理器1401和存储器1402之间通过总线1400连接为例。总线1400在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1400可以分为地址总线、数据总线、控制总线等,为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器1401也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器1402存储有可被至少一个处理器1401执行的指令,至少一个处理器1401通过执行存储器1402存储的指令,可以执行前文论述的一种热数据读取方法。处理器1401可以实现图13所示的装置中各个模块的功能。
其中,处理器1401是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器1402内的指令以及调用存储在存储器1402内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器1401可包括一个或多个处理单元,处理器1401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1401中。在一些实施例中,处理器1401和存储器1402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1401可以是通用处理器,例如CPU、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种热数据读取方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器1401进行设计编程,可以将前述实施例中介绍的一种热数据读取方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的实施例的一种热数据读取方法的步骤。如何对处理器1401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种热数据读取方法。
在一些可能的实施方式中,本申请提供一种热数据读取方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种热数据读取方法中的步骤。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种热数据读取方法,其特征在于,所述方法包括:
基于目标数据的目标计数标识,确定所述目标数据为热数据,所述目标计数标识表征:所述目标数据在设定时长内被读取的次数;
按照设定步长,对所述目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号,所述目标红黑树中保存有所述目标数据的目标物理地址;
基于所述目标编号,从红黑树集中获得所述目标红黑树,其中,所述红黑树集中包括M个红黑树,M与所述热数据的个数呈正相关;
基于所述目标逻辑地址与所述设定步长,获得目标偏移量,并基于所述目标红黑树的首地址和所述目标偏移量,从所述目标红黑树中获得所述目标物理地址,以及根据所述目标物理地址,获得所述目标数据。
2.如权利要求1所述的方法,其特征在于,所述基于目标数据的目标计数标识,确定所述目标数据为热数据,包括:
在所述设定时长内,每当所述目标数据被读取一次,将所述目标数据的目标计数标识加1,直到所述目标计数标识等于预设的第一热数据阈值时,停止计数,并确定所述目标数据为热数据。
3.如权利要求2所述的方法,其特征在于,还包括:
在所述设定时长截止时,获取所述目标数据的目标计数标识;
若所述目标计数标识小于第二热数据阈值,则将所述目标计数标识清零,并在下一个设定时长内,重新开始计数;
若所述目标数据的目标计数标识不小于所述第二热数据阈值,且小于所述第一热数据阈值,则在所述下一个设定时长内,继续计数。
4.如权利要求2所述的方法,其特征在于,所述确定所述目标数据为热数据之后,还包括:
若所述目标数据在后续N次读操作中,未被读取过,则将所述目标计数标识减1;
若所述目标数据对应的物理块被擦除,则将所述目标计数标识清零;
若所述目标计数标识减少至小于预设的第二热数据阈值,或者,所述目标计数标识被清零,则将所述目标数据更新为冷数据,并将所述目标数据的目标物理地址从所述目标红黑树中删除。
5.如权利要求1-4任一项所述的方法,其特征在于,所述红黑树集,是采用以下方式获得的:
基于预设的红黑树的高度,确定所述红黑树可存放的单元数量,以及基于所述热数据的个数,确定所述红黑树的个数M;
基于所述各热数据的物理地址、所述红黑树可存放的单元数量和所述红黑树的个数M,采用预设的哈希算法,确定各红黑树的编号;
将所述各热数据的物理地址插入到对应的各红黑树中;
将所述各红黑树的首地址和编号保存至哈希表中,获得所述红黑树集。
6.如权利要求5所述的方法,其特征在于,所述将所述各热数据的物理地址插入到对应的各红黑树中,包括:
在将一个热数据的物理地址插入到对应的一个红黑树时,执行以下操作:
若所述一个红黑树为空,则将所述一个热数据的物理地址作为所述一个红黑树的根节点,插入到所述一个红黑树中;
若所述一个红黑树非空,且所述一个热数据的物理地址小于所述一个红黑树的根节点中保存的物理地址,则将所述一个热数据的物理地址,插入到所述一个红黑树的根节点的左子树中;
若所述一个红黑树非空,且所述一个热数据的物理地址大于所述一个红黑树的根节点中保存的物理地址,则将所述一个热数据的物理地址,插入到所述一个红黑树的根节点的右子树中。
7.一种热数据读取装置,其特征在于,包括:
筛选模块,用于基于目标数据的目标计数标识,确定所述目标数据为热数据,所述目标计数标识表征:所述目标数据在设定时长内被读取的次数;
移位模块,用于按照设定步长,对所述目标数据的目标逻辑地址进行移位运算,获得目标红黑树的目标编号,所述目标红黑树中保存有所述目标数据的目标物理地址;
获取模块,用于基于所述目标编号,从红黑树集中获得所述目标红黑树,其中,所述红黑树集中包括M个红黑树,M与所述热数据的个数呈正相关;
定位模块,用于基于所述目标逻辑地址与所述设定步长,获得目标偏移量,并基于所述目标红黑树的首地址和所述目标偏移量,从所述目标红黑树中获得所述目标物理地址,以及根据所述目标物理地址,获得所述目标数据。
8.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品在被计算机调用时,使得所述计算机执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211486649.XA CN115729955A (zh) | 2022-11-24 | 2022-11-24 | 一种热数据读取方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211486649.XA CN115729955A (zh) | 2022-11-24 | 2022-11-24 | 一种热数据读取方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729955A true CN115729955A (zh) | 2023-03-03 |
Family
ID=85298217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211486649.XA Pending CN115729955A (zh) | 2022-11-24 | 2022-11-24 | 一种热数据读取方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115729955A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431080A (zh) * | 2023-06-09 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种数据落盘方法、系统、设备及计算机可读存储介质 |
-
2022
- 2022-11-24 CN CN202211486649.XA patent/CN115729955A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431080A (zh) * | 2023-06-09 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种数据落盘方法、系统、设备及计算机可读存储介质 |
CN116431080B (zh) * | 2023-06-09 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种数据落盘方法、系统、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447870B2 (en) | Device for identifying data characteristics for flash memory | |
CN105242871B (zh) | 一种数据写入方法及装置 | |
US10353607B2 (en) | Bloom filters in a flash memory | |
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
US20190155750A1 (en) | Multi-tier cache placement mechanism | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US11847058B2 (en) | Using a second content-addressable memory to manage memory burst accesses in memory sub-systems | |
CN112395212B (zh) | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 | |
CN109952565B (zh) | 内存访问技术 | |
CN110018790B (zh) | 一种保证持久性内存中数据崩溃一致性的方法及系统 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
CN114356248B (zh) | 一种数据处理方法和装置 | |
CN115951839A (zh) | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 | |
CN115729955A (zh) | 一种热数据读取方法及相关装置 | |
US20150100739A1 (en) | Enhancing Lifetime of Non-Volatile Cache by Injecting Random Replacement Policy | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
US20030140203A1 (en) | Memory record update filtering | |
JP7038656B2 (ja) | キャッシュへのアクセス | |
US10559359B2 (en) | Method for rewriting data in nonvolatile memory and semiconductor device | |
CN113918485A (zh) | 一种闪存资料防丢失方法、装置、设备及存储介质 | |
US9620237B2 (en) | Semiconductor device and search circuit for and method of searching for erasure count in semiconductor memory | |
CN105659216A (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
US20240176531A1 (en) | Non-volatile memory | |
US20190251031A1 (en) | Cache management device, system and method | |
CN112181864B (zh) | 针对Path ORAM的地址标签分配调度与多路径缓存写回方法 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 1202, Floor 12, Building 3, No. 126, Yueda Lane, Changhe Street, Binjiang District, Hangzhou City, Zhejiang Province, 310053 Applicant after: Zhejiang Huayi Core Technology Co.,Ltd. Address before: 310053 4th floor, building 1, No. 2952, South Ring Road, Puyan street, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: Zhejiang Dahua Technology Co.,Ltd. |
|
CB02 | Change of applicant information |