CN114860677A - 关于终端设备的文件去冗方法、终端设备及存储介质 - Google Patents
关于终端设备的文件去冗方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114860677A CN114860677A CN202210460034.3A CN202210460034A CN114860677A CN 114860677 A CN114860677 A CN 114860677A CN 202210460034 A CN202210460034 A CN 202210460034A CN 114860677 A CN114860677 A CN 114860677A
- Authority
- CN
- China
- Prior art keywords
- foreground
- hash value
- file
- metadata
- calculating
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种关于终端设备的文件去冗方法、终端设备及存储介质,用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。本申请实施例方法包括:获取写请求;根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
Description
技术领域
本申请涉及终端设备领域,尤其涉及一种关于终端设备的文件去冗方法、终端设备及存储介质。
背景技术
据调研发现,一个智能手机的深度用户,会产生体积相当的冗余文件。目前,大多数的智能手机去冗方法都是在后台进行的,这些去冗程序会通过对智能手机的全盘扫描检测出存在的冗余文件,然后提供给用户进行消除。
现如今,智能手机为了安全考虑,都会对文件进行加密。自安卓(Android)7.0以来智能手机大多支持FBE(File-based Encryption,文件级加密)的方法,这种加密方法的优点在于一个文件一个密钥。如果使用全盘扫描的方法进行相同文件的去冗,需要扫描智能手机内的每个文件,并且在扫描每个文件时都需要进行一次解密过程,造成较大的时间和***资源开销。
发明内容
本申请实施例提供了一种关于终端设备的文件去冗方法、终端设备及存储介质,用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。
本申请第一方面提供一种关于终端设备的文件去冗方法,所述方法应用于终端设备,所述方法可以包括:
获取写请求;
根据所述写请求,通过前台计算写入页的前台哈希值和元数据;
获取终端设备的空闲信息,确定触发时机;
在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;
根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;
对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
本申请第二方面提供一种终端设备,可以包括:
获取模块,用于获取写请求;
处理模块,用于根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
本申请第三方面提供一种终端设备,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器用于对应执行如本申请第一方面所述的方法。
本申请实施例又一方面提供一种计算机可读存储介质,包括指令,当其在处理器上运行时,使得处理器执行本申请第一方面所述的方法。
本申请实施例又一方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请第一方面所述的方法。
本申请实施例又一方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请第一方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,获取写请求;根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
图1为现有技术中关于文件读写的一个架构示意图;
图2为本申请实施例中关于终端设备的文件去冗方法的一个实施例示意图;
图3A为本申请实施例所应用的关于文件读写的一个架构示意图;
图3B为本申请实施例中计算前台哈希值和后台哈希值的一个示意图;
图4为本申请实施例中关于终端设备的文件去冗方法的另一个实施例示意图;
图5为本申请实施例中判断文件是否为硬链接文件进行读写的一个示意图;
图6为本申请实施例中终端设备的一个实施例示意图;
图7为本申请实施例中终端设备的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种关于终端设备的文件去冗方法、终端设备及存储介质,用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
由于去冗程序涉及到文件的读写流程,所以该场景涉及到后台的各个应用程序(Application,App)应用以及后台的虚拟文件***(virtual File System,VFS)、磁盘高速缓存(Disk Cache)、块输入/输出(Block Input/Output,Block I/O)层以及硬件存储。在App发出读请求后,VFS层会响应该应用,并首先判断是普通读写还是直接输入/输出(Direct I/O)方式,如果是普通读写方式,VFS层会先在磁盘高速缓存中寻找文件的页,如果寻找到就直接返回,如果没找到所需要文件的页,则还需要去更底层的磁盘中去读取。而使用Direct I/O方式则会绕过磁盘高速缓存直接去磁盘中寻找文件。写文件的过程与读文件类似,VFS层在获取到***响应后,会先将文件写在磁盘高速缓存中(用Direct I/O方式则直接写入磁盘),然后再写入磁盘中。如图1所示,为现有技术中关于文件读写的一个架构示意图。
从Android7.0以来,智能手机支持FBE加密,加密发生在VFS层与Block I/O层之间,如图1中①、②所示,在①读文件时会将从磁盘中读取到的数据先进行解密,然后保存到磁盘高速缓存中;在②写文件时,也是会先将磁盘高速缓存中的数据进行加密然后再保存到磁盘中。
结合图1所示,主要通过读取磁盘高速缓存中的明文数据,计算出前台的哈希值,并保存前台的哈希值以及一些元数据,元数据包括文件名、索引节点(inode)号(如图1中③所示);通过读取前台保存下来的文件匹配哈希值相同的文件,并再使用一次哈希计算,确认是否匹配(如图1中④所示);将冗余文件硬链接到目标文件。
下面以实施例的方式,对本申请技术方案做进一步的说明。如图2所示,为本申请实施例中关于终端设备的文件去冗方法的一个实施例示意图,可以包括:
201、获取写请求。
如图3A所示,为本申请实施例所应用的关于文件读写的一个架构示意图。在图3A所示中,磁盘高速缓存中包括模块1,模块1用于前台哈希值计算;App应用中包括模块2、模块3和模块4,模块2用于去重触发程序;模块3用于后台哈希程序;模块4用于链接去冗。
示例性的,用户在使用App时会产生一系列的写请求,写请求被发送到虚拟文件***VFS。
202、根据所述写请求,通过前台计算写入页的前台哈希值和元数据。
示例性的,VFS再将写请求传入磁盘高速缓存,磁盘高速缓存输入VFS传来的写请求,模块1根据写请求计算写入页的哈希值,输出前台计算的前台哈希值和部分元数据。
可选的,所述终端设备根据所述写请求,通过前台计算写入页的前台哈希值和元数据,可以包括:终端设备根据所述写请求,通过前台使用Alder32方法,计算写入页的前台哈希值和元数据。
可选的,所述终端设备根据所述写请求,通过前台计算写入页的前台哈希值和元数据,可以包括:终端设备根据所述写请求,通过前台计算目标文件最后一个页的前台哈希值和元数据。
示例性的,模块1中,输入VFS传来的写请求,由于模块2是在读写的流程中进行,需要考虑对于读写流程的影响,太长的时间开销会造成用户体验变差,所以需要牺牲精确度使用强度较弱的哈希方法,本申请使用的是Alder32的方法。此外,由于前台的作用也只是要求快速排除不同的文件,所以不需要对整个文件进行哈希计算,只需要计算文件的最后一个页(page),以减少前台哈希的计算量。
可以理解的是,在本申请实施例中,在去重过程中需要比较多个文件的内容,使用的是哈希(Hash)方法来进行计算。但根据要实现的功能不同,又可以分为前台哈希与后台哈希计算,也可以称为前台哈希值计算与后台哈希值计算。
下面对前台哈希计算进行一个简要说明:
前台哈希计算的主要功能是文件写入磁盘前快速计算出哈希值并保存,以便于在后台对文件进一步比较时,能够快速排除不同的文件。由于前台哈希发生在内核中,为了减轻内核的计算压力,又使用了以下的方法:
(1)哈希计算粒度
在前台进行哈希计算时,设计计算粒度为页(page)。因为在内核中,文件的读写正好是以页(page)的粒度进行,能够在写入文件时进行实时计算。同时,为了进一步降低计算开销,设计并不会对该文件的每一个页都进行哈希计算,因为前台哈希的目的是快速排除不同文件,所以只需计算最后一个页(page)。
(2)哈希算法选择
如上文所说,由于前台最终的目标在于快速且不对内核产生太大的计算开销,所以在哈希算法上不会选择传统加密类的哈希方法(如MD5、SHA256等),因为虽然此类哈希方法的碰撞率较低、精确度较高,但相对的计算开销太大,所以考虑使用如Alder32的校验和方法。
203、获取终端设备的空闲信息,确定触发时机。
可选的,所述终端设备获取终端设备的空闲信息,确定触发时机,可以包括:终端设备获取终端设备的空闲信息,根据决策树方法,确定触发时机。
可选的,所述终端设备获取终端设备的空闲信息,确定触发时机,可以包括:终端设备获取终端设备的空闲信息,根据CART分类树算法,确定触发时机。
可选的,所述终端设备的空闲信息包括:当前进程数量、是否息屏、息屏时间,电池电量、是否充电。
示例性的,App应用中的模块2,输入***的空闲(idle)信息(包括例如当前进程数量、是否息屏及息屏时间等)以及电池电量(是否充电),通过决策树方法判断是否开始去冗,输出决策后的信息,即触发时机。
可以理解的是,模块2输入***的idle信息,模块2为后台去冗程序的触发***,以合适的时机触发去冗程序。本申请中使用了决策树的方法,对终端设备***的idle信息(包括例如当前进程数量、是否息屏及息屏时间等)以及电池电量(是否充电)进行训练,生成一个决策树,输出合适的触发时机。
204、根据所述触发时机,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息。
可选的,所述终端设备根据所述触发时机,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息,可以包括:在满足所述触发时机的情况下,终端设备计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息。
可以理解的是,模块3有两个输入信息,(1)输入模块2的触发时机信息,如果触发条件成立开始去冗;(2)输入由模块1计算的前台哈希值。
示例性的,模块3为后台的去冗程序,根据所述触发时机,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点(inode)信息。
205、根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
所述终端设备根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值,可以包括:终端设备根据所述前台哈希值、所述元数据和所述索引节点信息,使用MD5或SHA256方法,计算后台哈希值。
可选的,所述方法还可以包括:终端设备对所述后台哈希值中不相同的文件,记录下所述不相同的文件的后台哈希值,在下次计算出前台哈希值的文件时,直接进行比较。
示例性的,模块3对相同前台哈希值的文件进一步计算后台哈希值,并判断是否相同,输出后台哈希值相同文件的索引节点(inode)信息。
可以理解的是,模块③通过前台哈希值的结果匹配,初步获得前台哈希值相同的文件,然后对前台哈希值相同的文件进行新一轮强度更高碰撞率较低的后台哈希值计算,确认文件是否相同。如果通过后台哈希值计算发现文件相同则确认该文件为冗余文件进行去冗,否则需要记录下该文件的后台哈希值,在下次有相同前台哈希值的文件时,无需再计算目标文件的后台哈希值直接比较即可。如图3B所示,为本申请实施例中计算前台哈希值和后台哈希值的一个示意图。
下面对后台哈希值计算进行一个简要说明:
例如:在通过前台获取到数据,判明两个文件的前台哈希值相同之后,需要进一步判断两个文件是否内容相同。
(1)哈希计算粒度与算法选择
与前台哈希不同的是,后台哈希追求的是较高的准确度。所以在后台计算的哈希粒度为文件粒度,即对整个文件进行哈希计算。同时,哈希算法也不再使用校验和的方法而是使用碰撞率较低的加密类哈希方法即MD5等方法,因为后台的作用是对前台的二次确认,需要使用较为精确的方法。
(2)后台去重触发时机
由于后台哈希需要耗费一定的时间,所以后台哈希的触发时机会关系到用户体验,因此需要对后台去重的触发时机进行一定的管理。在这里,采用的方案是决策树的方法。使用决策树方法,对手机***的idle信息(包括当前进程数量、是否息屏及息屏时间)以及电池电量(是否充电)进行训练,生成一个决策树,以此来判断是否进行去重。在本方案中选用了CART分类树算法。CART分类树方法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。
假设有K个类别,第K个类别的概率为pk,概率分布的基尼系数表达式为:
由于本方案只存在有两种类别即触发去冗和不触发去冗,所以相当于一个二分类问题,概率分布的基尼系数表达式可以简化为:
Gini(p)=2p(1-p)
其中,p为触发去冗的概率。
CART都要选择使子节点的GINI值最小的属性作为***的方案。即最小化(分类树):
假设,对于本方案中设定的5个属性:当前进程数量(大于/小于10)、是否息屏(是/否)、息屏时间(大于/小于10s)、电池电量(大于/小于50%)、是否充电(是/否)。对于每一个特征都计算出Gain值,选用最小Gain值的特征的作为最优特征,然后依次类推训练出一个决策树。
206、对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
示例性的,模块4中,输入模块3中发出的后台哈希值相同的文件信息,将相同的文件使用硬链接方法进行去冗。即将确认文件内容相同的文件,使用硬链接的方式进行链接,实现去冗。
可选的,所述终端设备根据所述写请求,通过前台计算写入页的前台哈希值和元数据,可以包括:终端设备根据所述写请求,通过前台计算写入页的前台哈希值、元数据和用户标签;
所述终端设备根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值,可以包括:在与所述前台哈希值相同的文件属于同一个用户的情况下,终端设备根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
可以理解的是,本申请还解决了使用硬链接去重后的隐私保护问题。虽然使用硬链接进行去重会极大的减少内存的占用,因为硬链接文件本身并不占用内存,多个硬链接文件享有同一个inode。这会造成安全性问题,例如可能存在多个用户使用同一App,如果多个用户之间存在有冗余文件,按照上述方法,会将冗余文件进行消除,这样多个用户的文件会都使用同一inode,造成数据泄露的问题。针对这一问题,在去重时引入用户标签,标签的作用在于通过操作***的帮助识别当前用户。
示例性的,用户发出写请求;操作***在接收到写请求之后,识别当前用户,并在该写入文件上加上用户标签;前台进行对写入文件进行哈希计算,并将哈希值、用户标签进行保存;输入***的idle信息(包括当前进程数量、是否息屏及息屏时间)以及电池电量(是否充电),通过决策树方法判断是否开始去冗,输出决策后的触发时机信息;在经过触发时机成功触发去冗程序后,对相同的前台哈希值文件进一步计算后台哈希值前,首先判断是否同属于一个用户,如果用户不同则不再计算后台哈希值。用户相同则输出相同文件的inode信息;将几个确认文件内容相同的文件,使用硬链接的方式进行链接,实现去冗。
在本申请实施例中,获取写请求;根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。本技术方案在于对在加密情况下的安卓(Android)终端设备的去冗方法进行优化,使用前台和后台相结合的方法。此过程中产生以下有益效果:(1)使用去冗程序,最显著的益处就是减少冗余文件占用手机内存。(2)通过计算前后台哈希值的配合,通过前台哈希值能够快速去除不同文件并定位到相同文件,极大的减轻了后台需要扫描的文件数量。极大的缩减了去冗流程所需要的时间。并且由于在前台使用的也只是较轻量级的哈希函数,对前台也不会产生太大的计算开销。本申请实施例能够消除用户在使用智能终端设备时(如转发同一图片、文件等)所产生的冗余文件。
如图4所示,为本申请实施例中关于终端设备的文件去冗方法的另一个实施例示意图,可以包括:
401、获取写请求。
402、根据所述写请求,通过前台计算写入页的前台哈希值和元数据。
403、获取终端设备的空闲信息,确定触发时机。
404、根据所述触发时机,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息。
405、根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
406、对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
需要说明的是,本申请实施例中的步骤401-406,与图2所示的步骤201-206类似,此处不再赘述。
可以理解的是,在前台与后台都进行完匹配并且确认了两个文件内容相同后,需要对两文件进行去重处理。在进行去重时,使用硬链接的方法(使用命令ln-f),将两个文件进行连接,该命令的作用在于删除当前文件然后生成一个硬链接文件指向目标文件,这样就实现了冗余文件的删除。
对于已去冗的文件,只留下文件的一个备份,当存在多个用户对同一文件读写时会造成更新不同步的问题。例如有一个去冗文件file,有用户进程A读写文件而有用户进程B对文件进行写操作同时进行,则会造成A可能会读取到B修改前的文件file也可能读取到B修改后的文件file'。为应对这种问题,本申请在对文件进行读写操作进行了一定的修改,如下所示。
407、检测到用户对第一文件的读/写请求。
示例性的,用户A发出对文件A的读/写请求,终端设备检测到用户A对文件A的读/写请求。
408、根据所述读/写请求,对所述第一文件索引节点的属性i_nlink进行判断。
示例性的,文件A在接收到读/写请求之后,对文件inode的i_nlink属性进行判断,输出判断结果(Y/N)。
409、如果属性i_nlink=1,则确定所述第一文件为非硬链接文件,对所述第一文件进行读/写。
示例性的,如图5所示,为本申请实施例中判断文件是否为硬链接文件进行读写的一个示意图。如果属性i_nlink=1,则说明该文件A为非硬链接文件,直接将文件A传输给用户A,如图5中①所示,读/写流程结束。
410、如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写。
可选的,如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写,可以包括:如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写,若为读操作,则将所述临时文件删除,若为写操作,则将所述临时文件保存。
示例性的,如果属性i_nlink>2,则说明该文件为硬链接文件,则进入如图5中②所示;输入信号为该文件A为硬链接文件,需要生成文件A的临时文件A_tmp,然后将该临时文件传输给用户A;在读操作完成后,则需要将该临时文件删除。对于写操作,则是将该临时文件进行保存。
在本申请实施例中,获取写请求;根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。用于消除用户在使用终端设备时所产生的冗余文件,也缩减了去冗流程所需要的时间。本技术方案在于对在加密情况下的安卓(Android)终端设备的去冗方法进行优化,使用前台和后台相结合的方法。此过程中产生以下有益效果:(1)使用去冗程序,最显著的益处就是减少冗余文件占用手机内存。(2)通过计算前后台哈希值的配合,通过前台哈希值能够快速去除不同文件并定位到相同文件,极大的减轻了后台需要扫描的文件数量。极大的缩减了去冗流程所需要的时间。并且由于在前台使用的也只是较轻量级的哈希函数,对前台也不会产生太大的计算开销。本申请实施例能够消除用户在使用智能终端设备时(如转发同一图片、文件等)所产生的冗余文件。
可选的,可在竞品设备中拷贝大量相同文件,然后观察存储空间使用情况。如存储空间没有相应减少,则可判断存在侵权。
如图6所示,为本申请实施例中终端设备的一个实施例示意图,可以包括:
获取模块601,用于获取写请求;
处理模块602,用于根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
可选的,处理模块602,具体用于根据所述写请求,通过前台使用Alder32方法,计算写入页的前台哈希值和元数据。
可选的,处理模块602,具体用于根据所述写请求,通过前台计算目标文件最后一个页的前台哈希值和元数据。
可选的,处理模块602,具体用于根据所述前台哈希值、所述元数据和所述索引节点信息,使用MD5或SHA256方法,计算后台哈希值。
可选的,处理模块602,具体用于获取终端设备的空闲信息,根据CART分类树算法,确定触发时机。
可选的,处理模块602,还用于检测到用户对第一文件的读/写请求;根据所述读/写请求,对所述第一文件索引节点的属性i_nlink进行判断;如果属性i_nlink=1,则确定所述第一文件为非硬链接文件,对所述第一文件进行读/写;如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写。
可选的,处理模块602,具体用于根据所述写请求,通过前台计算写入页的前台哈希值、元数据和用户标签;
处理模块602,具体用于在与所述前台哈希值相同的文件属于同一个用户的情况下,根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
可选的,处理模块602,还用于对所述后台哈希值中不相同的文件,记录下所述不相同的文件的后台哈希值,在下次计算出前台哈希值的文件时,直接进行比较。
如图7所示,为本申请实施例中终端设备的另一个实施例示意图,可以包括:
图7示出的是与本申请实施例提供的终端设备设备相关的手机的部分结构的框图。参考图7,手机包括:射频(Radio Frequency,RF)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(wireless fidelity,Wi-Fi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对手机的各个构成部件进行具体的介绍:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器780处理;另外,将设计上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给比如另一手机,或者将音频数据输出至存储器720以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了Wi-Fi模块770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
手机还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理***与处理器780逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,处理器780,用于获取写请求;根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
可选的,处理器780,具体用于根据所述写请求,通过前台使用Alder32方法,计算写入页的前台哈希值和元数据。
可选的,处理器780,具体用于根据所述写请求,通过前台计算目标文件最后一个页的前台哈希值和元数据。
可选的,处理器780,具体用于根据所述前台哈希值、所述元数据和所述索引节点信息,使用MD5或SHA256方法,计算后台哈希值。
可选的,处理器780,具体用于获取终端设备的空闲信息,根据CART分类树算法,确定触发时机。
可选的,处理器780,还用于检测到用户对第一文件的读/写请求;根据所述读/写请求,对所述第一文件索引节点的属性i_nlink进行判断;如果属性i_nlink=1,则确定所述第一文件为非硬链接文件,对所述第一文件进行读/写;如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写。
可选的,处理器780,具体用于根据所述写请求,通过前台计算写入页的前台哈希值、元数据和用户标签;
处理器780,具体用于在与所述前台哈希值相同的文件属于同一个用户的情况下,根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
可选的,处理器780,还用于对所述后台哈希值中不相同的文件,记录下所述不相同的文件的后台哈希值,在下次计算出前台哈希值的文件时,直接进行比较。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种关于终端设备的文件去冗方法,其特征在于,所述方法应用于终端设备,所述方法包括:
获取写请求;
根据所述写请求,通过前台计算写入页的前台哈希值和元数据;
获取终端设备的空闲信息,确定触发时机;
在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;
根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;
对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
2.根据权利要求1所述的方法,其特征在于,所述根据所述写请求,通过前台计算写入页的前台哈希值和元数据,包括:
根据所述写请求,通过前台使用Alder32方法,计算写入页的前台哈希值和元数据。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述写请求,通过前台计算写入页的前台哈希值和元数据,包括:
根据所述写请求,通过前台计算目标文件最后一个页的前台哈希值和元数据。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值,包括:
根据所述前台哈希值、所述元数据和所述索引节点信息,使用MD5或SHA256方法,计算后台哈希值。
5.根据权利要求1或2所述的方法,其特征在于,所述获取终端设备的空闲信息,确定触发时机,包括:
获取终端设备的空闲信息,根据CART分类树算法,确定触发时机。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
检测到用户对第一文件的读/写请求;
根据所述读/写请求,对所述第一文件索引节点的属性i_nlink进行判断;
如果属性i_nlink=1,则确定所述第一文件为非硬链接文件,对所述第一文件进行读/写;
如果属性i_nlink>2,则确定所述第一文件为硬链接文件,生成所述第一文件的临时文件,对所述临时文件进行读/写。
7.根据权利要求1或2所述的方法,其特征在于,所述根据所述写请求,通过前台计算写入页的前台哈希值和元数据,包括:
根据所述写请求,通过前台计算写入页的前台哈希值、元数据和用户标签;
所述根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值,包括:
在与所述前台哈希值相同的文件属于同一个用户的情况下,根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值。
8.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对所述后台哈希值中不相同的文件,记录下所述不相同的文件的后台哈希值,在下次计算出前台哈希值的文件时,直接进行比较。
9.一种终端设备,其特征在于,包括:
获取模块,用于获取写请求;
处理模块,用于根据所述写请求,通过前台计算写入页的前台哈希值和元数据;获取终端设备的空闲信息,确定触发时机;在满足所述触发时机的情况下,计算与所述前台哈希值相同的文件,输出与所述前台哈希值相同的文件的索引节点信息;根据所述前台哈希值、所述元数据和所述索引节点信息,计算后台哈希值;对所述后台哈希值中相同的文件,使用硬链接方法进行去冗。
10.一种终端设备,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器用于对应执行如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,包括指令,当其在处理器上运行时,使得处理器执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210460034.3A CN114860677A (zh) | 2022-04-24 | 2022-04-24 | 关于终端设备的文件去冗方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210460034.3A CN114860677A (zh) | 2022-04-24 | 2022-04-24 | 关于终端设备的文件去冗方法、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860677A true CN114860677A (zh) | 2022-08-05 |
Family
ID=82633823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210460034.3A Pending CN114860677A (zh) | 2022-04-24 | 2022-04-24 | 关于终端设备的文件去冗方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860677A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及*** |
CN116340275A (zh) * | 2023-03-14 | 2023-06-27 | 深圳乐信软件技术有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
-
2022
- 2022-04-24 CN CN202210460034.3A patent/CN114860677A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340275A (zh) * | 2023-03-14 | 2023-06-27 | 深圳乐信软件技术有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
CN116340275B (zh) * | 2023-03-14 | 2024-03-01 | 深圳市乐信信息服务有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110278449B (zh) | 一种视频检测方法、装置、设备及介质 | |
CN107729815B (zh) | 图像处理方法、装置、移动终端及计算机可读存储介质 | |
CN110147237B (zh) | 一种冗余资源去除方法和装置 | |
CN114860677A (zh) | 关于终端设备的文件去冗方法、终端设备及存储介质 | |
WO2018059131A1 (en) | Method and device for updating sequence of fingerprint templates for matching | |
CN107329778B (zh) | ***更新的方法及相关产品 | |
CN108270757B (zh) | 一种用户账户切换方法、装置、客户端以及*** | |
CN108563754B (zh) | 文件处理方法、装置、移动终端及计算机可读存储介质 | |
CN109002547B (zh) | 日志文件存储方法、移动终端及计算机可读存储介质 | |
CN106682189B (zh) | 文件名显示方法及装置 | |
CN114661527A (zh) | 数据备份方法、装置、电子设备及存储介质 | |
CN106708555B (zh) | 一种加载插件的方法和装置 | |
CN108256466B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
WO2024139279A1 (zh) | 访问控制列表规则配置方法、装置、电子设备及存储介质 | |
CN108874591B (zh) | 文件处理方法及相关产品 | |
CN104954231B (zh) | 一种发送、显示推荐信息的方法及装置 | |
CN108319862B (zh) | 一种数据文件处理的方法和装置 | |
CN111210299B (zh) | 一种单号生成及管理方法及装置 | |
CN115269517A (zh) | 一种文件管理方法、装置、存储介质及终端 | |
CN111666421B (zh) | 数据处理方法、装置及电子设备 | |
CN104966024B (zh) | 一种防护数据库的方法及装置 | |
CN104424321A (zh) | 一种文件目录获取方法和装置 | |
CN104134044B (zh) | 一种数据安全性的检测方法、装置和*** | |
CN107632795B (zh) | 移动数据的方法、设备、移动终端以及计算机存储介质 | |
CN112559532A (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 |