掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及存储技术领域,尤其涉及一种数据管理方法、电子设备及计算机可读写存储介质。

背景技术

目前,电子设备(如手机、平板等)中的应用程序(application,APP)中数据存储的方式为由文件系统统一分配存储空间后,再将全部应用程序的存储数据按文件类型进行分类管理。例如,系统管家应用将数据分为图片、视频、音频、文档、压缩包、安装包、应用等不同的文件类型,进行分类管理。

当前的这种数据存储的方式仅仅是基于数据的文件类型进行分类管理,无法有效的对数据进行管理。例如,若用户需要清理存储空间,通常需要借助第三方存储空间清理工具先对存储空间中的数据进行筛选和整理,用户再基于第三方存储空间清理软件的筛选和整理的结果进行数据清理的操作。然而第三方存储空间清理工具在对存储空间中的数据进行整理时,是基于其开发者预先设定的规则进行整理的,其整理结果中展示出的可清理数据中仅为疑似可清理数据,与实际需要清理的数据相差较大。基于此,用户通过第三方存储空间清理工具也无法有效的对数据进行管理。

发明内容

有鉴于此,本申请提供了一种数据管理方法、电子设备及计算机可读写存储介质,解决现有技术中存储空间利用率不高,且仅基于数据的文件类型进行分类存储,无法有效的对数据管理的问题,提高存储空间的利用率。

第一方面,本申请提供一种数据管理方法,应用于支持应用程序运行的电子设备。其中,电子设备可以接收运行于前台的第一应用程序发送的数据写入请求,并对该数据写入请求对应的待写入数据进行分块处理,以得到该写入数据包括的一个或多个数据块。之后,可以计算出每个数据块的数据块标识,每个数据块唯一对应一个数据块标识。之后,获取索引表,可以基于索引表中指示的已存储的数据块,以及一个或多个数据块的数据块标识,判断电子设备中是否已存储与一个或多个数据块相同的数据块,并根据判断的结果对一个或多个数据块进行存储管理。

综上,采用本申请实施例的方法,对运行于电子设备前台的第一应用程序发送的数据写入请求对应的写入数据进行分块,得到长度更小的一个或多个数据块,以便于对写入数据进行更细粒度的处理。此外,计算每个数据块的数据块标识之后,可以基于该数据块标识,确定索引表中指示的已存储的数据块是否与该待存储的数据块相同实现有效的数据存储管理。

在第一方面的一种可能的实现方式中,根据一个或多个数据块的数据块标识以及索引表,判断是否已存储与一个或多个数据块相同的数据块,基于判断的结果对一个或多个数据块进行存储管理,包括:一个或多个数据块包括第一数据块,第一数据块的数据块标识为第一数据块标识,当索引表包括第一数据块标识时,则说明已存储了与第一数据块相同的数据块,因此,可以确定不保存第一数据块;一个或多个数据块包括第二数据块,第二数据块的数据块标识为第二数据块标识,当索引表不包括第二数据块标识时,可以说明未存储第二数据块,确定保存第二数据块。

也就是说,可以通过索引表判断电子设备中是否已存入与一个或多个数据块中相同的数据块,从而减少重复内容存储,提高空间利用率。

在第一方面的一种可能的实现方式中,当索引表包括第一数据块标识时,可以将索引表中第一数据块标识对应的引用次数加一,该引用次数可以指示已存储的第三数据块的第一物理块地址的引用次数,其中,第三数据块为与第一数据块相同,且已存储的数据块,因此第三数据块的数据块标识为第一数据块标识。

在该设计方式中,在索引表中可以通过引用次数记录已存储数据块被重复引用的次数。因此,当索引表包括第一数据块标识时,即可将索引表中与第一数据块标识对应的引用次数加一,表示第一数据块被再一次引用,从而避免重复存储相同的数据块。

在第一方面的一种可能的实现方式中,当索引表包括第一数据块标识时,可以在映射表中,建立第一数据块的第一逻辑块地址和第一物理块地址的第一映射关系。其中,第一逻辑块地址用于描述第一数据块在逻辑地址空间中的位置。第一物理块地址用于指示第一数据块存储于存储模块中的地址。

在该设计方式中,在索引表中包括第一数据块标识时,通过在映射表中建立第一数据块的第一逻辑块地址和第一物理块地址的第一映射关系,可以记录发生写入的第一数据块的第一逻辑块地址和第一物理块地址的第一映射关系,以便于后期维护或查看等操作,保证电子设备存储功能的稳定性。

在第一方面的一种可能的实现方式中,当索引表不包括第二数据块标识时,可以确定第二数据块的第二物理块地址。之后,并在索引表中建立第二数据块标识和第二物理块地址的索引关系,并在索引表中设置第二物理块地址的引用次数为一。

在该设计方式中,在索引表中可以通过引用次数记录已存储数据块被重复引用的次数。因此,当索引表不包括第二数据块标识时,即可在索引表中新建一个与第二数据块对应的索引项。且该新建的索引项中包括第二数据块标识和第二物理块地址的索引关系,以便于后续的写入工作中,需要对与第二数据块相同的待写入数据块进行写入时,可以直接从索引表中查找到该待写入数据块已存储,无需再次存储,从而避免存储重复的内容。此外,可以在索引表中设置第二物理块地址的引用次数为一,表示该第二数据块第一被引用。

在第一方面的一种可能的实现方式中,当索引表不包括第二数据块标识时,可以在映射表中,建立第二物理块地址和第二数据块的第二逻辑块地址的第二映射关系。其中,第二逻辑块地址用于描述第二数据块在逻辑地址空间中的位置。第二物理块地址用于指示第二数据块存储于存储模块中的地址。

在该设计方式中,在索引表中包括第二数据块标识时,通过在映射表中建立第二数据块的第二逻辑块地址和第二物理块地址的第二映射关系,可以记录发生写入的第二数据块的第二逻辑块地址和第二物理块地址的第二映射关系,以便于后期维护或查看等操作。

在第一方面的一种可能的实现方式中,电子设备中可以安装多个应用程序,且第二物理块地址用于指示第一应用程序对应的第一存储空间中的存储地址。为了保证每个应用程序的正常运行,电子设备中的每个应用程序均对应有一存储空间。

在该设计方式中,每个应用程序均对应有一存储空间,可以保证每个应用程序均可正常运行在电子设备中。基于此,每个应用程序所产生的写入数据均会被写入各自对应的存储空间中,从而可以对同一前台应用程序所产生的数据进行聚合存储,进一步提高存储空间的利用率。

在第一方面的一种可能的实现方式中,在确定数据写入请求对应的待写入数据包括的一个或多个数据块时,可以按照预设方法,将数据写入请求对应的待写入数据划分为长度相同的一个或多个数据块。也就是说,通过待写入数据划分为长度相同的一个或多个数据块,可以将写入数据转化为长度更小的数据块,实现更细粒度的处理,提高处理效率以及存储空间的利用率。

第二方面,本申请提供一种电子设备,电子设备包括显示屏、存储器和一个或多个处理器;显示屏、存储器和处理器耦合;显示屏用于显示处理器生成的图像,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。

其中,当处理器执行计算机指令时,使得电子设备执行以下操作:接收第一应用程序发送的数据写入请求;第一应用程序运行于前台;确定数据写入请求对应的待写入数据包括的一个或多个数据块,以及一个或多个数据块的数据块标识;获取索引表,索引表用于指示已存储的数据块;根据一个或多个数据块的数据块标识以及索引表,判断是否已存储与一个或多个数据块相同的数据块,基于判断的结果对一个或多个数据块进行存储管理。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:一个或多个数据块包括第一数据块,第一数据块的数据块标识为第一数据块标识,当索引表包括第一数据块标识时,确定不保存第一数据块;或者,一个或多个数据块包括第二数据块,第二数据块的数据块标识为第二数据块标识,当索引表不包括第二数据块标识时,确定保存第二数据块。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:将索引表中第一数据块标识对应的引用次数加一,引用次数用于指示已存储的第三数据块的第一物理块地址的引用次数,第三数据块的数据块标识为第一数据块标识。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:在映射表中,建立第一数据块的第一逻辑块地址和第一物理块地址的第一映射关系。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:确定第二数据块的第二物理块地址;在索引表中建立第二数据块标识和第二物理块地址的索引关系,并在索引表中设置第二物理块地址的引用次数为一。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:在映射表中,建立第二物理块地址和第二数据块的第二逻辑块地址的第二映射关系。

在第二方面的另一种可能的设计方式中,第二物理块地址用于指示第一应用程序对应的第一存储空间中的存储地址,电子设备还包括第二应用程序,第二应用程序对应于第二存储空间。

在第二方面的另一种可能的设计方式中,当处理器执行计算机指令时,使得电子设备还执行以下操作:按照预设方法,将数据写入请求对应的待写入数据划分为长度相同的一个或多个数据块。

第三方面,本申请提供一种计算机可读写存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上第一方面及其任一种可能的设计方式的方法。

第四方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如上第一方面及其任一种可能的设计方式的方法。

第五方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及可能的实现方式中任一方法中电子设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,发送模块或单元,和接收扫描模块或单元等。

第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面及其任一种可能的设计方式的任意一种方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

可以理解地,上述提供的第二方面及其任一种可能的设计方式的电子设备,第三方面的计算机可读写存储介质,以及第四方面的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

附图说明

图1为本申请实施例提供的一种电子设备的示意图;

图2为本申请实施例提供的一种电子设备的硬件结构示意图;

图3为本申请实施例提供的一种电子设备的软件结构框图;

图4为本申请实施例提供的一种电子设备的存储架构的结构框图;

图5为本申请实施例提供的一种第一展示界面的示意图;

图6为本申请实施例提供的一种第二展示界面的示意图;

图7为本申请实施例提供的一种第三展示界面的示意图;

图8为本申请实施例提供的一种存储模块的存储结构框图;

图9为本申请实施例提供的一种电子设备的结构示意框图;

图10为本申请实施例提供的数据管理方法的流程示意图一;

图11为本申请实施例提供的数据管理方法的流程示意图二;

图12为本申请实施例提供的一种电子设备的结构示意框图。

具体实施方式

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在一些场景中,电子设备(如智能手机、平板电脑)等在运行APP的过程中,可能产生重复输入输出(input/output,IO)的情况。但是,电子设备一般不会识别重复的写IO,继而造成相同内容重复写入电子设备的存储空间中,造成IO性能下降的同时也浪费了大量的存储空间。

一些示例中,电子设备中可配置用于对电子设备的存储空间进行清理的应用程序,如第三方存储空间工具,用户可以借助该第三方存储空间清理工具,对存储空间中存入的大量的重复数据进行清理。其中,第三方存储空间清理工具一般会先对存储空间中的数据进行筛选和整理,使得用户可以基于第三方存储空间清理工具的筛选和整理的结果进行数据清理的操作。

然而第三方存储空间清理工具在对存储空间中的数据进行筛选和整理时,是基于其开发者预先设定的规则进行筛选和整理的,其筛选和整理结果中展示出的可清理数据中仅为基于预先设定的规则确定的疑似可清理数据,与实际需要清理的数据相差较大。并且,用户可能只能根据自身需求删除可清理数据中的部分数据,却无法确定这些可清理数据是否为重复数据。那么,在用户在通过第三方存储空间清理工具进行数据清理的操作后,电子设备的存储空间中仍存在重复数据。

例如,若第三方存储空间清理工具的开发者预先设定的规则中将某一类型的数据规定为可清理的数据。那么,该第三方存储空间清理工具会将存储空间中同属该类型的数据全部归为需要清理的数据,用户可以选择清除部分或全部类型的可清理数据。

此外,电子设备确定的某一类型的数据中一小部分的数据被清理后可能会影响相关应用的正常运行,或用户使用。但是用户可能无法获取该情况,如用户采用删除某类型的全部数据的方式来实现数据清理,导致电子设备数据管理的可操控性较差。

由此,本申请提供一种数据管理方法,在数据的存储过程中对数据进行分类存储,以便于实现对数据进行有效的管理。同时,基于本申请提供的数据管理方法,还可以有效对IO请求中的重复数据进行删除,从而有效的提升存储空间的利用率。

本申请实施例提供的数据管理方法,可以应用于电子设备100。例如,如图1所示,该电子设备100具体可以是手机21、平板电脑22、智慧屏23、笔记本电脑24、车载设备、可穿戴设备(如智能手表)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、人工智能(artificialintelligence)设备等具有显示功能的终端设备。电子设备100安装的操作系统包括但不限于iOS®、Android®、Harmony®、Windows®、Linux®或者其它操作系统。本申请对电子设备100的具体类型、所安装的操作系统均不作限制。

图2示出了电子设备100的硬件结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。

可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。

充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。

电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC ,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system ,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。

电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。

电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。

摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。

外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个硬盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。

在一些实施例中,电子设备100在运行应用程序的过程中,接收到应用程序发送的数据写请求。响应于该数据写请求,电子设备100将获取到的写IO发送至内部存储器121中进行存储。

音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。在一些实施例中,音频模块170例如包括扬声器、受话器、麦克风耳机接口等。

触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。

其中,传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。

按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。

马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。

SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。

电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。

图3是本发明实施例的电子设备100的软件结构框图。

分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。

应用程序层可以包括一系列应用程序包。

如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。

应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。

如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。

窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。

内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。

视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。

电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。

资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。

通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。

Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。

核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。

应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维(2D)图形引擎(例如:SGL)等。

表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。

媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。

三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。

2D图形引擎是2D绘图的绘图引擎。

内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,存储驱动,音频驱动,传感器驱动。

在一些场景中,电子设备100的存储架构可用于实现电子设备中APP的数据存储。

可选的,存储架构可分层实现,如图4所示,一般包括用户层、存储驱动以及存储硬件层。其中,用户层可对应于如图3所示的应用程序层,存储驱动处于如图3所示的内核层。存储硬件层可对应于电子设备的硬件结构,如图2所示的内部存储器。电子设备用户层中的APP在运行的过程中,会产生输入输出(input/output,IO)请求,用于写入数据或读取数据。存储驱动可以获取该IO请求并对其进行处理,再基于对该IO请求的处理结果向存储硬件层中的存储模块发送写入数据请求或读取数据请求,以使存储模块在接收到写入数据请求或读取数据请求后进行响应,如执行写入数据或读取数据的操作,从而保证应用程序的正常运行。

一些示例中,如图4所示,存储驱动可以包括文件系统、块设备(block)层以及驱动(driver)层。其中,文件系统用于把APP发起的IO请求转化为对存储模块(如硬盘)中逻辑块地址(logic block address,LBA)的请求。逻辑块地址用于描述一个数据块在存储模块上所在的区块。block层用于对IO请求进行管理,例如对IO请求进行暂存、合并等操作,以及确定IO请求的处理顺序等。driver层用于把IO请求转换为存储模块可识别的指令,例如,把IO请求中对逻辑块地址的读写命令转化为与存储模块对应的接口协议。

示例性地,如图4所示,APP运行产生的IO请求被存储驱动中的文件系统接收,文件系统对IO请求进行处理后将其下发至block层以及driver层,再经block层以及driver层的处理后IO请求被发送至存储硬件层中的存储模块。存储模块对IO请求进行响应,实现数据的写入或读取。

在一些实施例中,文件系统例如包括闪存友好文件系统(flash friendly filesystem,F2FS)、第四代扩展文件系统(fourth extended filesystem,ext4)等。

示例性的,系统管家将数据分为图片、视频、音频、文档、压缩包、安装包、应用等不同的文件类型,进行分类管理,如图5所示,电子设备显示第一展示界面,该第一展示界面为系统管家对数据进行分类后的存储分类展示界面。可以看出,在第一展示界面中仅能够指示电子设备中所存储的用户数据,并具体展示出这些用户数据按照文件类型划分的类别分别占用的存储空间,如音频数据、安装包数据、文档数据等。电子设备检测到用户点击清理加速控件51的操作后,可显示如图6所示的第二展示界面。如图6所示,该第二展示界面中可用于显示自动清理结果。并且,在第二显示界面上还可显示第三方存储空间清理工具对数据进行整理的结果,如第二展示界面中可显示第三方存储空间清理工具按照开发者预先设定的规则整理好的文件分类结果。

其中,垃圾文件为第三方存储空间清理工具基于开发者设定的规则所整理出的垃圾数据,由于开发者预先设定的规则中的垃圾数据与实际垃圾数据的判定标准不统一,电子设备在检测到用户点击第二展示界面中的立即清理控件61后,会执行对垃圾数据进行清理的操作。由于该垃圾数据为根据开发者预先设定的规则整理出的,而该预先设定的规则又存在一定的限定性,因此,实际的垃圾数据可能仍然存在于电子设备中,或者实际清理的垃圾数据中可能包括影响应用程序运行的必要数据。

此外,电子设备检测到用户点击第二展示界面中与应用数据对应的去清理控件62后,可显示如图7所示的第三展示界面。如图7所示,该第三展示界面中可用于显示应用数据分类下的垃圾数据的子分类。电子设备检测到用户对第三展示界面中的删除控件71的操作后,会根据用户选中的应用数据中每一个子分类下的具体数据进行理。其中,删除控件71可显示电子设备检测到用户选中的垃圾数据的数据量。

在一些实施例中,电子设备中配置有多个应用,其中每一应用会产生多个IO内容存储需求。其中,不同的应用之间的IO内容重复率较低,例如,一般可小于1%。但是,在一个应用内产生的IO内容重复率较高。例如,如下表1所示,每个应用内的IO内容重复率可在20%-40%。那么,存储模块(如硬盘等)中会对相同的IO内容进行重复存储,导致存储空间的浪费。并且,采用上述图5-图7所示场景示例的数据管理方法,管理存储模块的存储空间过程可操控性差,影响用户使用。

表1

因此,本申请提供一种数据管理方法,通过对写IO过程进行管理,以降低电子设备存储空间中重复数据的存储。一些示例中,电子设备获取前台应用程序产生的IO请求后,对前台应用程序产生的IO请求进行分块,以得到多个数据块。其中,前台应用程序为运行在前台的应用程序。电子设备基于得到的数据块,分别计算每个数据块的数据块标识,再基于每个数据块的数据块标识对数据块进行存储管理,避免存储模块中写入内容相同的数据块,从而提高存储模块的空间利用率。

此外,电子设备在将数据块写入存储模块中时,可将数据块写入存储模块中的目标存储空间,该目标存储空间与前台应用程序对应,从而实现数据存储基于应用程序进行分类,有效的对存储模块内的存储进行管理。

如下对本申请提供数据管理方法进行详细介绍。

在一些实施例中,电子设备可按照应用划分存储模块中的存储空间,不同应用对应于不同的存储空间。

示例性的,如图8所示,电子设备安装有应用A、应用B、以及应用C。在电子设备的存储模块中,分别划分出用于存储应用A数据的存储空间1、用于存储应用B数据的存储空间2、以及用于存储应用C数据的存储空间3。

这样,电子设备能够以存储空间为单位,对同一个应用的数据进行聚合存储,从而实现单独管理不同应用的存储数据,降低存储空间中存储数据的重复率。

在一些实施例中,电子设备响应用户操作,确定前台应用程序。在前台应用程序运行的过程中,会产生写IO请求,用于在存储模块中写入应用程序运行所需的数据。

其中,前台应用程序是电子设备的显示屏当前显示的界面对应的应用。

需要说明的是,前台应用程序的画面内容不仅可以包括用户看的见的画面,还可以包括无用户界面的内容、透明图层的内容或者被其他应用界面遮挡对用户不可见的内容,这些画面内容的运行可能均会产生相应的写IO请求。

一些示例中,用户操作例如包括用户指示启动应用的操作,如对应用图标的操作、语音控制应用的操作、将后台应用切换至前台等的操作。

示例性的,响应于用户对前台应用程序的操作,前台应用程序产生IO请求。比如,电子设备在显示购物应用的商品搜索结果展示界面的过程中,检测到用户点击其中的一个商品对应的详细信息查看链接的操作,购物应用产生相应的数据写入请求,电子设备可获取到该数据写入请求。

在一些实施例中,电子设备确定应用程序发送的数据写入请求,将该数据写入请求携带的待写入数据进行分块(chunks),其中每一数据块可对应于一个IO请求。例如,以4KB为单位,将待写入数据分成多个数据块,以便将待写入数据以数据块的形式写入盘中的对应的盘块中。

需要说明的是,数据块的大小与盘块的大小相同。盘块的大小一般为4KB,为了保证每个数据块均可直接写入一个盘块,在对待写入数据进行分块时,可以以4KB为单位,将待写入数据分成多个数据块。

可选的,数据分块的方法可参考现有技术,例如,可以通过block()函数进行数据分块,对此本申请实施不再赘述。应理解,电子设备也可按照其他数据块单位对待写入数据进行分块。

一些示例中,电子设备按照预设方式,确定划分后的数据块的标识,这样后续电子设备可通过不同的标识区分不同的数据块,确定是否重复存储数据。

可选的,预设方式例如包括电子设备通过哈希算法计算每个数据块的散列值或哈希值,将计算结果作为数据块的标识。其中,每一数据块具有唯一对应的标识,那么该标识可作为数据块的指纹(fingerprint,FP)。

比如,电子设备通过信息摘要算法(message-digest algorithm,md5)或安全散列算法(secure hash algorithm,SHA)等算法,确定数据块的FP。其中,安全散列算法例如包括SHA-1算法。

示例性的,如图9所示,电子设备确定应用A切换至前台运行,可监测应用A的数据写入请求(如步骤①)。之后,响应于接收到的数据写入请求,电子设备block层中的重删控制模块,可按照预设方式,将待写入的数据进行分块,并确定不同数据块的指纹(如步骤②)。

在一些实施例中,电子设备在划分应用程序对应的存储空间后,可创建当前存储空间对应的索引表,该索引表用于记录该存储空间中已经存储的数据块的标识,以及数据块对应的物理块地址(physics block address,PBA),数据块的PBA代表数据块在物理地址空间中对应的位置。

需要说明的是,物理块地址用于指示数据块存储于存储模块中的位置,即数据块在外存上的位置,逻辑块地址用于描述一个数据块在逻辑地址空间中的位置。

示例性的,如下表2所示的应用A的存储空间1对应的索引表。其中,应用A中存储有数据块1、数据块2以及数据块3。其中数据块1的指纹为FP1,存储的物理块地址为PBA1;数据块2的指纹为FP2,存储的物理块地址为PBA2;数据块3的指纹为FP3,存储的物理块地址为PBA3。

表2

一些示例中,如图9所示,电子设备确定应用A切换至前台运行后,可通过block层中的索引管理模块获取应用A的索引表(如步骤③)。之后,重删控制模块在完成数据块划分后,可获取到索引管理模块发送的应用A的索引表。重删控制模块可通过查找应用A的索引表的方式,确定待写入的数据块的指纹是否与应用A的索引表中已经保存的指纹相同。如相同,可确定存储模块中已经存储有相应的数据块,不必再进行重复存储;如不相同,则可确定未存储对应的数据块,需要划分对应的存储空间中的存储区域用于存储该指纹对应的数据块。

如此,电子设备通过查找与应用程序对应的索引表实现以应用程序为单位的存储数据聚合管理。同时,在实现数据存储过程中,重复数据块的快速查重,避免重复存储。相对于直接查找存储模块中是否存在重复的数据块,工作量更小,因此通过索引表来实现重复数据块的查找可以提高效率。

一些示例中,如图9所示,重删控制模块通过查找应用A的索引表的方式,可以确定待写入的数据块的指纹是否与应用A的索引表中已经保存的指纹相同。如相同,则可确定存储模块中已经存储有相应的数据块,不必再进行重复存储;如不相同,则可以向数据管理模块发送数据块存储指示,该数据块存储指示中可携带有该待写入的数据块。

相应地,数据管理模块在应用A对应的存储空间中为数据块分配存区域,并在该存储区域写入待写入的数据块(如步骤④)。

一些示例中,如上表2所示,索引表中还包括引用次数项,引用次数用于指示相同物理块地址对应的数据块的引用次数。

比如,如图9所示,电子设备中的重删控制模块根据应用A的索引表(如上表2),确定当前数据块的指纹重复,可删除该数据块,即不必在存储模块中重复写入该数据块。并且,重删控制模块可直接基于索引表确定重复的指纹对应的物理块地址,将上表2中该指纹以及物理块地址对应的引用次数加1,用于表示该物理块地址对应的数据块被再一次引用,从而避免重复存储相同的数据块。

又比如,如图9所示,电子设备中的重删控制模块根据应用A的索引表(如上表2),确定当前数据块的指纹未重复。那么,重删控制模块可更新应用A的索引表,填入新的指纹和对应的物理块地址,并确定对应的引用次数为1。

在一些实施例中,在数据存储过程中,电子设备为数据块分配物理块地址以及逻辑块地址(logical block address,LBA)。其中,逻辑块地址用于描述一个数据块在存储模块上所在的区块,而物理块地址则表示该数据块实际在存储模块中的物理地址。每一数据块均配置有唯一的LBA。并且,如上文所述,由于对相同指纹的数据块被删除,那么导致相同的物理块地址被多次引用,那么不同的数据块可对应于相同的PBA,即LBA与PBA的对应关系为n(n>=1)对1。引用次数,代表该数据块在内核层被使用的次数。

示例性的,如下表3所示的映射表,电子设备可通过该映射表确定数据块的逻辑块地址(LBA)和物理块地址(PBA)的映射关系。

表3

在一些实施例中,电子设备检测到用户指示关闭应用A的操作,或用户指示启动应用B的操作,可以确定应用A被关闭或切换至后台运行。那么相应的,如图9所示,索引管理模块可以将与应用A对应的索引表和映射表重新存储到存储模块中与应用A对应的存储空间1中。

此外,如电子设备确定应用B被切换至前台运行。那么,电子设备可开始对应用B在运行过程中产生的数据写入请求进行监测。相应的,如图9所示,重删控制模块响应于应用B的数据写入请求,可从存储模块中与应用B对应的存储空间2中,获取与应用B对应的索引表和映射表,从而确定是否需要进行数据块的写入。

下文对本申请实施例提供数据管理方法的过程进行详细的介绍。示例性的,图10为本申请实施例提供的一种数据管理方法的流程示意图。如图10所示,该方法包括如下步骤。

S1001、重删控制模块接收到应用A发送的数据写入请求。

其中,数据写入请求用于在存储模块中写入相应的数据,该数据用于支持应用A的运行。

示例性的,电子设备显示应用A的第一展示界面,该第一展示界面中展示有多个图片,每个图片均对应一个链接。电子设备检测到用户点击第一展示界面中的图片1的操作,确定用户指示打开该图片1对应的链接。那么,电子设备可通过图片1对应的链接显示第二展示界面。在该界面跳转过程中,应用A产生数据写入请求,相应的,重删控制模块可以获取到该数据写入请求。其中,该数据写入请求用于将运行数据存储于存储模块中,该运行数据可用于支持电子设备显示第二展示界面。

S1002、重删控制模块对数据进行分块,并生成数据块标识。

在一些实施例中,重删控制模块响应于接收到的数据写入请求,基于盘块的大小,对数据写入请求对应的数据进行分块,以获得一个或多个数据块。之后,重删控制模块可按照预设方式,确定该一个或多个数据块的标识,以区分不同的数据块。

S1003、重删控制模块向索引管理模块发送索引表获取请求。

在一些实施例中,重删控制模块响应于接收到的数据写入请求,向索引管理模块发送索引表获取请求。其中,索引表获取请求中可携带待写入数据的应用程序(即前台应用程序)的标识,以便于索引管理模块区分不同应用程序对应的存储空间。

相应的,索引管理模块接收重删控制模块发送的索引表获取请求。

S1004、索引管理模块向重删控制器发送索引表获取响应。

在一些实施例中,响应于接收到的数据写入请求,索引管理模块根据索引表获取请求中携带的应用程序标识,确定该应用程序标识对应的应用程序的存储空间。之后,索引管理模块可从该确定的存储空间中获取到相应的索引表。之后,索引管理模块可向重删控制模块发送索引表获取响应,并在该索引表获取响应中携带确定的索引表。

相应的,重删控制模块可接收索引管理模块发送的索引表获取响应。

示例性的,如图10所示,索引管理模块接收到重删控制模块发送的索引表获取请求,并获取到在该索引表获取请求中携带的应用A的标识。之后,索引管理模块可根据该标识,确定应用A对应的存储空间1,并获取到存储空间1中存储的应用A的索引表。之后,索引管理模块可将该应用A的索引表发送至重删控制模块。

S1005、重删控制模块根据数据块标识和索引表,确定是否已经存储对应的数据块。若是,执行步骤S1006-步骤S1007;若否,执行步骤S1008-步骤S1011。

在一些实施例中,重删控制模块对应用A发送的数据写入请求进行数据分块后,可以得到包括数据块A在内的多个数据块。在将数据块A进行写入存储模块的过程中,重删控制模块先计算数据块A的指纹为FP1,之后,重删控制模块通过索引管理模块发送的与应用A对应的索引表,确定是否需要进行数据块的存储。

作为一种可能的情况,若重删控制模块确定与应用A对应的索引表中存在包括FP1的目标索引项,则表示应用A在此之前的运行过程中,已在存储模块中写入了数据块A。因此,可以不将数据块A再次写入存储模块中,仅基于数据块A对应用A的索引表和映射表进行更新,避免将数据块A重复写入存储模块中造成存储空间的浪费。即,执行下述步骤S1006和步骤S1007。

作为另一种可能的情况,若重删控制模块确定与应用A对应的索引表中不存在包括FP1的目标索引项,则表示应用A在此之前的运行过程中,未在存储模块中写入数据块A。此时,重删控制模块可以为数据块A分配对应的物理块地址和逻辑块地址,并基于数据块A对应用A的索引表和映射表进行更新。即,执行下述步骤S1008-步骤S1011。

以下为步骤S1006-步骤S1007:

S1006、重删控制模块向索引管理模块发送索引表更新指示。

其中,索引表更新指示用于指示索引管理模块对索引表和映射表进行更新。

在一些实施例中,索引表更新指示可携带应用程序标识、数据块标识、索引表标识、映射表标识中的至少一项。

S1007、索引管理模块更新索引表和映射表。

在一些实施例中,索引管理模块接收到索引表更新指示后,可确定其中携带的标识,从而确定待更新的索引表和映射表,以及需要更新的内容。

示例性地,在上述步骤S1005中,重删控制模块在根据数据块标识FP1和如上文表2所示的索引表,确定已经存储对应的数据块之后,可确定需要对表2进行更新。那么在上述步骤S1006中,重删控制模块可向索引管理模块发送索引表更新指示,用于指示更新索引表。相应的,在上述步骤S1007中,索引管理模块响应于接收到的索引表更新指示,将与数据块标识FP1对应的引用次数加1,得到如下表4所示的新索引表。

表4

此外,索引管理模块响应于接收到的索引表更新指示,也可建立数据块对应逻辑块地址和已经存在的物理块地址的映射关系,即更新应用A对应的映射表。例如,如下表5所示,索引表管理模块在上表3所示的映射表中添加新的映射项,该映射项用于指示与数据块对应的逻辑块地址LBA4以及物理块地址PBA1的映射关系。

表5

继续参看图10,在重删控制模块根据数据块标识和索引表,确定存储模块中还没有存储对应的数据块的情况下,可执行以下步骤S1008-步骤S1011:

S1008、重删控制模块向数据块管理模块发送数据块存储指示。

其中,数据块存储指示用于指示进行数据块的存储。

一些示例中,该数据块存储指示中携带有待写入数据块对应的应用程序标识,该应用程序A的标识用于确认应用程序A对应的存储空间。

在一些实施例中,重删控制模块在确定待写入的数据块为新的数据块,存储模块中暂未存储与该数据块相同的数据块。那么,重删控制模块可确定需要存储该数据块,并向数据管理模块发送数据块存储指示,该数据块存储指示中可携带有该待写入的数据块。

相应的,数据块管理模块接收重删控制模块发送的数据块存储指示。

S1009、数据块管理模块在应用A对应的存储空间中为数据块分配存储区域。

其中,电子设备中的存储模块为用于提供存储空间的硬件结构,因此电子设备中可存在多个存储模块。电子设备的数据管理模块在对存储模块进行管理时,可将存储模块中分散开在不同位置的盘块视为连续的存储空间。也就是说,数据管理模块对连续的多个数据块进行存储,可以在与应用A对应的存储空间为多个连续的数据库分配连续的存储空间,但这些连续的存储空间在存储模块中不一定为连续的盘块。

数据管理模块可在确定的存储空间中为待写入的数据块分配存储区域,并将该待写入的数据块写入分配的存储区域中。

示例性的,如图9所示,数据管理模块响应于接收到的数据存储指示,在应用A对应的存储空间1中为待写入的数据块分配存储区域,并在该存储区域写入待写入的数据块。

S1010、数据块管理模块向索引管理模块发送索引表更新指示。

其中,该更新指示用于指示索引管理模块对索引表和映射表进行更新。

在一些实施例中,数据块管理模块在分配用于存储数据块的存储区域后,可确定存储区域对应的物理块地址。并且,数据块管理模块可确定数据块的逻辑块地址、标识等信息。那么,数据块管理模块可向索引管理模块发送更新指示,并在该更新指示中携带数据块标识、数据块对应的逻辑块地址、数据块对应的物理块地址、索引表标识、映射表标识、应用A标识等信息。

相应的,索引管理模块接收数据块管理模块发送的更新指示。

S1011、索引管理模块更新索引表和映射表。

在一些实施例中,索引管理模块在接收到更新指示后,可根据其中携带的数据块标识、数据块对应的逻辑块地址、数据块对应的物理块地址、索引表标识、映射表标识、应用A标识等信息,更新对应的索引表和映射表。

比如,索引管理模块在索引表中添加新的索引项,并在映射表中添加新的映射项。其中,新的索引项包括数据块标识和物理块地址,新的映射项中包括与数据块对应的逻辑块地址以及物理块地址。

示例性地,在上述步骤S1005中,重删控制模块在根据数据块标识FP4和如上文表4所示的索引表,确定表4所示的索引表中不存在数据块标识FP4,即可确定没有存储对应的数据块。那么,在上述步骤S1008中,重删控制模块可向数据块管理模块发送数据块存储指示。那么相应的,数据块管理模块在完成数据块的存储后,可向索引管理模块发送更新指示(即步骤S1009和步骤S1010)。之后,索引管理模块基于更新指示对表4进行更新,在表4中添加新的索引项,该索引项中包括数据块标识FP4、为该数据块分配的物理块地址PBA4以及用于指示该物理块地址被循环引用的引用次数,得到如下表6所示的新索引表。

表6

此外,索引管理模块基于更新指示对表5进行更新,在表5中添加新的映射项,该映射项中包括与数据块对应的逻辑块地址LBA5以及物理块地址PBA4,得到如下表7所示的新映射表。

表7

如此,电子设备对前台应用程序产生的IO请求进行分块处理后,可以利用数据块标识对得到的数据块进行重删,避免存储空间的浪费。

此外,电子设备通过与前台应用程序对应的索引表以及映射表的维护,可以有效的实现对数据块的管理,对同一前台应用程序所产生的数据进行聚合存储,提高存储空间的利用率。

示例性的,图11为本申请实施例提供的又一种数据管理方法的流程示意图。如图11所示,该方法包括如下步骤。

S1101:电子设备接收第一应用程序发送的数据写入请求。

其中,第一应用程序运行于前台,即表示第一应用程序前台应用程序。

在一些示例中,第一应用程序是电子设备的显示屏当前显示的界面对应的应用。例如,电子设备的显示屏当前显示的界面为应用A中的登录界面,则应用A即为第一应用程序。

需要说明的是,第一应用程序的画面内容不仅可以包括用户看的见的画面,还可以包括无用户界面的内容、透明图层的内容或者被其他应用界面遮挡对用户不可见的内容,这些画面内容的运行可能均会产生相应的写IO请求。

S1102:电子设备确定数据写入请求对应的待写入数据包括的一个或多个数据块,以及一个或多个数据块的数据块标识。

如图10所示,电子设备可以利用重删控制模块对数据进行分块,并生成数据块标识。

示例性地,重删控制模块可以接收数据写入请求,之后,基于盘块的大小对数据写入请求对应的数据进行分块,以获得一个或多个数据块。之后,重删控制模块可按照预设方式,确定该一个或多个数据块的标识,以区分不同的数据块。

需要说明的是,可以通过哈希算法计算每个数据块的散列值或哈希值,将计算结果作为数据块的标识。其中,每一数据块具有唯一对应的标识,那么该标识可作为数据块的指纹。

S1103:电子设备获取索引表,索引表用于指示已存储的数据块。

一些示例中,该索引表与第一应用程序对应,且每个应用程序均可对应有索引表。

一些示例中,索引表存储于电子设备的存储模块中,当与索引表对应的应用程序在前台运行时,电子设备可以将存储于存储模块中的索引表读取至电子设备的内存中,从而保证电子设备的处理速度。

示例性地,电子设备中安装有多个应用程序,如应用A、应用B以及应用C。若前台应用程序为应用A,则与应用A对应的索引表已被电子设备从存储模块中读取至内存中。之后,若电子设备检测到用户对应用A执行了关闭操作,且对应用C执行了打开操作。则电子设备可以使应用C运行于电子设备的前台。相应地,电子设备可以将应用A的索引表从内存中重新存储至存储模块,并从存储模块中将应用C的索引表读至内存中。

S1104:电子设备根据一个或多个数据块的数据块标识以及索引表,判断是否已存储与一个或多个数据块相同的数据块,基于判断的结果对一个或多个数据块进行存储管理。

一些实施例中,一个或多个数据块包括第一数据块,第一数据块的数据块标识为第一数据块标识,当索引表包括第一数据块标识时,电子设备可确定不保存第一数据块。

或者,一个或多个数据块包括第二数据块,第二数据块的数据块标识为第二数据块标识,当索引表不包括第二数据块标识时,电子设备可确定保存第二数据块。

比如,电子设备基于数据写入请求对应的待写入数据确定的一个或多个数据块中包括数据块A以及数据块B。如索引表中包括数据块A的数据块标识a,则说明电子设备中已存储了与数据块A相同的数据块,因此,电子设备可确定不保存数据块A;如索引表中不包括数据块B的数据块标识b,则说明电子设备中未存储相同的数据块,因此,电子设备可确定保存数据块B。

其中,索引表中包括已存储的数据块标识以及引用次数项,次数用于指示相同物理块地址对应的数据块的引用次数。

可选地,在确定索引表包括第一数据块标识时,电子设备可以将索引表中第一数据块标识对应的引用次数加一,该引用次数用于指示已存储的第三数据块的第一物理块地址的引用次数,第三数据块的数据块标识为第一数据块标识,第一物理块地址用于指示第三数据块的存储地址。

基于上述方案,电子设备还可以在映射表中,建立第一数据块的第一逻辑块地址和第一物理块地址的第一映射关系。

可选地,在确定索引表包括第二数据块标识时,可以先确定第二数据块的第二物理块地址,以便基于第二物理块地址将第二数据块写入存储模块中。之后,还可以在索引表中建立第二数据块标识和第二物理块地址的索引关系,并在索引表中设置第二物理块地址的引用次数为一。

基于上述方案,电子设备还可以在映射表中,建立第二物理块地址和第二数据块的第二逻辑块地址的第二映射关系。

需要说明的是,第二物理块地址用于指示第一应用程序对应的第一存储空间中的存储地址,电子设备还包括第二应用程序,第二应用程序对应于第二存储空间。

作为一种可能的情况,该方法在确定数据写入请求对应的待写入数据包括的一个或多个数据块时,可以按照预设方法,将数据写入请求对应的待写入数据划分为长度相同的一个或多个数据块。

如此,电子设备对第一应用程序发送的数据写入请求进行分块处理后,可以利用数据块标识对得到的数据块进行存储管理,避免存储空间的浪费。

此外,电子设备通过与第一应用程序对应的索引表以及映射表的维护,可以有效的实现对数据块的管理,对同一前台应用程序所产生的数据进行聚合存储,提高存储空间的利用率。

以上结合图8-图11详细说明了本申请实施例提供的数据管理方法。以下结合图12详细说明本申请实施例提供的电子设备。

在一种可能的设计中,图12为本申请实施例提供的电子设备的结构示意图。如图12所示,电子设备1200可以包括:处理单元1201以及收发单元1202。电子设备1200可用于实现上述方法实施例中涉及的电子设备的功能。

可选地,处理单元1201,用于支持电子设备1200执行图10中的S1002、S1005、S1007、S1009、S1011,还用于支持电子设备1200执行图11中的S1102、S1104。

可选地,收发单元1202,用于支持电子设备1200执行图10中的S1001、S1003、S1004、S1006、S1008、S1010,还用于支持电子设备1200执行图11中的S1101、S1103。

其中,收发单元1202可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。电子设备1200中的各个单元的操作和/或功能分别为了实现上述方法实施例中的数据管理方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。

可选地,图12所示的电子设备1200还可以包括存储单元(图12中未示出),该存储单元中存储有程序或指令。当处理单元1201以及收发单元1202执行该程序或指令时,使得图12所示的电子设备1200可以执行上述方法实施例中的数据管理方法。

图12所示的电子设备1200的技术效果可以参考上述方法实施例中的数据管理方法的技术效果,此处不再赘述。

除了以电子设备1200的形式以外,本申请提供的技术方案也可以为电子设备中的功能单元或者芯片,或者与电子设备匹配使用的装置。

本申请实施例还提供一种计算机可读写存储介质,该计算机可读写存储介质包括计算机指令,当计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中的各个功能或者步骤。

本申请实施例还提供一种计算机程序产品,包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行上述方法实施例中的各个功能或者步骤。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读写存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个可读写存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的可读写存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 多版本数据存储管理方法及装置、电子设备、存储介质
  • 集中式密码管理方法、装置、电子设备及计算机存储介质
  • 智慧门店的管理方法、装置、电子设备及计算机存储介质
  • 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 数据读写方法、装置、电子设备及计算机可读存储介质
  • 数据读写控制方法、控制装置、计算机存储介质和电子设备
技术分类

06120115928623