技术新讯 > 计算推算,计数设备的制造及其应用技术 > 数据写入方法及相关设备与流程  >  正文

数据写入方法及相关设备与流程

  • 国知局
  • 2024-09-14 14:26:11

本技术涉及计算机,尤其涉及一种数据写入方法及相关设备。

背景技术:

1、重复数据删除功能是存储系统中一个重要的特性。存储系统引入了重复数据删除功能后,可以减少重复数据的存储,进而节省了存储空间。

2、现有技术中,重复数据删除操作通常包含如下流程:获得数据块的指纹;查询指纹表中是否包含相同的指纹,如果指纹表中不包含该指纹,则在存储区域中分配存储地址,并将该数据块存储到该存储地址,在指纹表中建立该指纹与该存储地址的映射关系,以及该数据块的逻辑块地址到指纹的映射关系;当有相同指纹的数据块再次写入时,只需要建立再次写入的数据块的逻辑块地址与该指纹的映射关系,而不需要重新存储再次写入的数据块。

3、现有技术中重复数据删除技术虽然节省了存储空间,但是也存在指纹表存储了所有数据块的指纹,导致指纹表数据量大的问题。对于存储空间有限的电子设备而言,例如便携式智能设备(智能手机、智能手表等),为了降低检测重复数据的指纹表占用的高内存空间,数据量较大的指纹表可能不会完全加载至电子设备的内存中,导致指纹查询的效率较低,且指纹表数据量大亦会造成存储空间的浪费。

技术实现思路

1、有鉴于此,有必要提供一种数据写入方法,可降低指纹表的数据量,且可提升重复数据删除效率。

2、本技术实施例第一方面公开了一种数据写入方法,应用于电子设备,数据写入方法包括:响应于第一数据的写入请求,获取第一数据的数据特征;基于第一数据的数据特征,确定第一数据所属的数据类型,数据类型包括第一类型与第二类型;基于指纹表记录的指纹确定第一数据的写入方式,及按照确定的写入方式执行第一数据的写入,指纹表中的指纹用于唯一标识数据;基于所述第一数据的数据类型将所述第一数据的指纹记录至所述指纹表。

3、采用上述技术方案,电子设备可以基于指纹表记录的指纹确认待写入数据是否是重复数据,例如,将指纹表记录的指纹与待写入数据的指纹进行比对,若确认指纹表记录有与待写入数据的指纹相同的指纹,认为待写入数据为重复数据,重复数据不写入至磁盘,实现重复数据删除,若确认指纹表未记录有与待写入数据的指纹相同的指纹,认为待写入数据不是重复数据,可以将待写入数据写入至磁盘,进一步,通过获取待写入数据的数据特征,预测待写入数据是否为未来会发生重复的数据,对于未来会发生重复的数据,将待写入数据的指纹记录至指纹表,以便后续可以基于更新的指纹表进行重复数据删除,对于未来不会发生重复的数据,由于后续无需进行重复数据删除,不将待写入数据的指纹记录至指纹表,可实现降低指纹表的数据量,使得电子设备的内存可加载整个指纹表,相比现有方案可减少内存与磁盘的数据置换次数,提升重复数据删除效率,且较少数据量的指纹表亦可提升指纹比对速度,进一步提升重复数据删除效率。

4、在一些实施例中,基于第一数据的数据特征,确定第一数据所属的数据类型,包括:将第一数据的数据特征输入至预先训练的预测模型,得到第一数据所属的数据类型;第一类型用于指示第一数据是未来会重复的数据,第二类型用于指示第一数据是未来不会重复的数据。

5、采用上述技术方案,可以利用机器学习算法预先训练得到预测模型,例如,预测模型可基于决策树算法、随机森林算法、支持向量机算法、k最近邻算法、adaboost算法等算法与样本数据训练得到,样本数据可以是电子设备中各个应用在日常使用过程中写数据的日志,通过将待写入数据的数据特征输入至预测模型,预测模型可以输出第一数据所属的数据类型,对于未来会发生重复的数据(第一类型),将待写入数据的指纹记录至指纹表,以便后续可以基于更新的指纹表进行重复数据删除,对于未来不会发生重复的数据(第二类型),不将待写入数据的指纹记录至指纹表,可实现降低指纹表的数据量,使得电子设备的内存可加载整个指纹表,提升重复数据删除效率,且较少数据量的指纹表亦可提升指纹比对速度,进一步提升重复数据删除效率。

6、在一些实施例中,电子设备包括磁盘,基于指纹表记录的指纹确定第一数据的写入方式,及按照确定的写入方式执行第一数据的写入,包括:将第一数据按照预设大小划分为一个或多个数据块,及计算每个数据块的指纹;将每个数据块的指纹与指纹表中的指纹进行比对,指纹表中的指纹用于唯一标识数据块;若指纹表中存在与第一数据中的第一数据块的指纹相同的指纹,放弃将第一数据块写入至磁盘;若指纹表中不存在与第一数据块的指纹相同的指纹,将第一数据块写入至磁盘。

7、采用上述技术方案,通过将待写入数据按照预设大小划分为多个数据块,指纹表中的指纹用于唯一标识数据块,在进行数据块写入时,将数据块的指纹与指纹表记录的指纹进行比对,若确认指纹表记录有与数据块的指纹相同的指纹,认为待写入的数据块为重复数据,重复数据块不写入至磁盘,可实现块级粒度的重复数据删除,若指纹表未记录有与数据块的指纹相同的指纹,认为待写入的数据块不是重复数据,将待写入的数据块写入至磁盘。

8、在一些实施例中,放弃将第一数据块写入至磁盘,包括:建立第一数据块的逻辑块号与磁盘中的目标物理块号的映射,目标物理块号对应的物理块存储的内容与第一数据块的内容相同。

9、采用上述技术方案,在确定第一数据块为重复数据时,可通过将第一数据块的逻辑块号与磁盘中的目标物理块号建立映射关系,使得第一数据块的逻辑块号可以指向目标物理块号的物理块(存储的内容与第一数据块的内容相同),实现更新物理块存储的内容的元数据信息,且可避免重复写入相同的数据块至磁盘。

10、在一些实施例中,放弃将第一数据块写入至所述磁盘,包括:建立第一数据块的逻辑块号与目标逻辑块号的映射,目标逻辑块号与目标物理块号建立有映射关系,目标物理块号对应的物理块存储的内容与第一数据块的内容相同。

11、采用上述技术方案,在确定第一数据块为重复数据时,可通过将第一数据块的逻辑块号与在先的目标逻辑块号建立映射关系,而目标逻辑块号与目标物理块号建立有映射关系,即即使得第一数据块的逻辑块号可以指向目标物理块号的物理块(存储的内容与第一数据块的内容相同),实现更新物理块存储的内容的元数据信息,且可避免重复写入相同的数据块至磁盘。

12、在一些实施例中,指纹表还记录有物理块号的引用次数,数据写入方法还包括:在指纹表中将目标物理块号的引用次数进行加一。

13、采用上述技术方案,通过在指纹表中记录物理块号的引用次数,当某个物理块号与逻辑块号建立映射关系之后,在指纹表中将该物理块号的引用次数进行加一,即引用次数可以表征与物理块号建立有映射关系的逻辑块号的数量,进而可以基于引用次数确定是否出现重复数据,及重复数据出现的次数。

14、在一些实施例中,指纹表中记录的指纹配置有预设存储时长,数据写入方法还包括:若在预设存储时长之后指纹表中记录的第一指纹所对应的引用次数为预设值,将第一指纹从指纹表中删除。

15、采用上述技术方案,预设值可以是表征物理块号仅与一个逻辑块号建立有映射关系,通过存储时长与引用次数可以筛选出指纹表中误记录的非重复数据的指纹,若某个指纹在预设存储时长之后仍未被使用(物理块号的引用次数未发生变化,且为预设值),即认为该指纹为错误记录在指纹表中,可以将第一指纹从指纹表中删除,以实现降低指纹表的数据量,例如电子设备可通过启动一个后台线程,定期去清理这些错误记录在指纹表中的指纹。

16、在一些实施例中,将第一数据块写入至磁盘,包括:为第一数据块分配一个空闲的物理块;建立第一数据块的逻辑块号与空闲的物理块的物理块号的映射;将第一数据块的内容写入至空闲的物理块。

17、采用上述技术方案,在确定第一数据块不是重复数据时,可以为第一数据块分配一个空闲的物理块,及建立第一数据块的逻辑块号与该空闲的物理块的物理块号的映射,实现维护第一数据块的元数据信息,且通过将第一数据块的内容写入至该空闲的物理块,实现将第一数据块写入至磁盘。

18、在一些实施例中,基于第一数据的数据类型将第一数据的指纹记录至指纹表,包括:若第一数据为第一类型,将第一数据的指纹记录至指纹表;第二类型的数据的指纹不记录至指纹表。

19、采用上述技术方案,对于未来会发生重复的数据(第一类型),将待写入数据的指纹记录至指纹表,以便后续可以基于更新的指纹表进行重复数据删除,对于未来不会发生重复的数据(第二类型),不将待写入数据的指纹记录至指纹表,可实现降低指纹表的数据量,使得电子设备的内存可加载整个指纹表,提升重复数据删除效率,且较少数据量的指纹表亦可提升指纹比对速度,进一步提升重复数据删除效率。

20、在一些实施例中,若第一数据为所述第一类型,将第一数据的指纹记录至指纹表,包括:将第一数据按照预设大小划分为一个或多个数据块,及计算每个数据块的指纹;若基于预测模型确定第一数据为第一类型,将第一数据中的每个数据块的指纹记录至指纹表。

21、采用上述技术方案,在确定第一数据是未来会发生重复的数据时,通过将第一数据按照预设大小划分为多个数据块,及将每个数据块的指纹记录至指纹表,实现在指纹表中维护块级粒度的指纹,便于后续进行块级粒度的重复数据删除。

22、在一些实施例中,数据写入方法还包括:若基于预测模型确定第一数据为第二类型,利用布隆过滤器查询第一数据是否是首次出现;若查询得到第一数据不是首次出现,将第一数据中的每个数据块的指纹记录至指纹表;若查询得到第一数据是首次出现,在布隆过滤器中记录第一数据的信息,第一数据中的每个数据块的指纹不记录至指纹表。

23、采用上述技术方案,由于训练得到的预测模型无法达到百分百的预测准确度,对于经预测模型预测为未来不会发生重复的数据,可通过布隆过滤器再次查询数据是否是首次出现,若通过布隆过滤器查询到该数据出现过,表明预测模型的预测结果不准确,该被预测模型认为是未来不会重复的数据实际上是发生了重复,通过将各个数据块的指纹记录至指纹表,以用作后续的重复数据删除操作,且可避免数据再次出现时无法进行重复数据删除的问题,若通过布隆过滤器查询到该数据未出现过,表明预测模型的预测结果准确,由于后续无需对该数据进行重复数据删除操作,不将各个数据块的指纹记录至指纹表,进而可实现降低指纹表的数据量,且通过在布隆过滤器中记录该数据的信息,便于后续在该数据再次出现时,可以通过布隆过滤器查询到该数据先前出现过。

24、在一些实施例中,第一数据的数据特征包括数据大小、写入时间、写请求的发起者、数据原所有者、存储路径、创建模式、目录项标志信息中的一个或者多个。

25、采用上述技术方案,第一数据的数据特征包括但不限于数据大小、写入时间、写请求的发起者、数据原所有者、存储路径、创建模式、目录项标志信息中的一个或者多个,通过将样本数据的数据特征作为预测模型的训练特征,将未来会重复及未来不会重复作为模型的标签,实现对预测模型的训练。

26、第二方面,本技术实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面所述的数据写入方法。

27、第三方面,本技术实施例提供一种电子设备,电子设备包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中的指令,使得电子设备执行如第一方面所述的数据写入方法。

28、第四方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在电子设备(如计算机)上运行时,使得电子设备执行如第一方面所述的数据写入方法。

29、第五方面,提供一种装置,所述装置具有实现上述第一方面所提供的方法中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。

30、可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的电子设备,第四方面所述的计算机程序产品,第五方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

本文地址:https://www.jishuxx.com/zhuanli/20240914/294042.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。