CN115705313A - 一种数据处理方法、装置、设备及计算机可读存储介质 - Google Patents
一种数据处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115705313A CN115705313A CN202110928107.2A CN202110928107A CN115705313A CN 115705313 A CN115705313 A CN 115705313A CN 202110928107 A CN202110928107 A CN 202110928107A CN 115705313 A CN115705313 A CN 115705313A
- Authority
- CN
- China
- Prior art keywords
- directory
- file
- target
- metadata
- data
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 29
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 309
- 238000013507 mapping Methods 0.000 claims abstract description 229
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000015654 memory Effects 0.000 claims description 37
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 21
- 239000000284 extract Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000008672 Gynura procumbens Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法、装置、设备及计算机可读存储介质;涉及云技术和区块链技术;该方法包括:接收针对目标文件的处理操作,并对目标文件所在的目标目录进行编码,得到目录索引参数;通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据;依据目录元数据和目标文件的文件名称构造出的文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据;基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作。通过本申请,能够提高数据处理的整体效率。
Description
技术领域
本申请涉及云技术中的分布式文件系统技术,尤其涉及一种数据处理方法、装置、设备及计算机可读存储介质。
背景技术
名字空间负责管理分布式文件系统的目录树结构和文件元数据。当名字空间的处理对象是目录树时,实质上就是对目录树中的或文件进行数据处理。然而,相关技术中,由于数据查询耗时较长,以及索引参数中存在冗余等原因,使得在对目录树中的文件进行数据处理时,需要消耗较长的时间,从而数据处理的整体效率低下。
发明内容
本申请实施例提供一种数据处理方法、装置、装置及计算机可读存储介质,能够提高数据处理的整体效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,包括:
接收针对目标文件的处理操作,并对所述目标文件所在的目标目录进行编码,得到目录索引参数;
通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据;所述目录映射数据存储了目所述标索引参数和目录元数据的映射关系,以及文件索引参数和所述目标文件对应的目标元数据的映射关系;
依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据;
基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,所述处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
本申请实施例提供一种数据处理装置,包括:
操作接收模块,用于接收针对目标文件的处理操作;
信息编码模块,用于对所述目标文件所在的目标目录进行编码,得到目录索引参数;
数据查找模块,用于通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据;所述目录映射数据存储了所述目录索引参数和目录元数据的映射关系,以及文件索引参数和所述目标文件对应的目标元数据的映射关系;依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据;
文件处理模块,用于基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,所述处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
在本申请的一些实施例中,所述数据查找模块,还用于从所述目录元数据中解析出所述目标目录对应的目录标识;利用所述目录标识和所述目标文件的所述文件名称,生成所述文件索引参数;依据所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据。
在本申请的一些实施例中,所述处理操作包括:所述移动操作;所述文件处理模块,还用于对所述移动操作对应的移动目录进行编码,得到移动索引参数;所述移动目录表征将所述目标文件移动到的目录;依据所述移动索引参数,从所述目录映射数据中筛选出所述移动目录对应的移动元数据;从所述移动元数据中,解析出所述移动目录的移动标识,并利用所述移动标识和所述文件名称,拼接出最新索引参数;建立所述最新索引参数与所述目标元数据之间的映射关系,并将所述最新索引参数写入所述目录映射数据;从所述目录映射数据中删除所述文件索引参数,实现所述对所述目标文件的所述移动操作。
在本申请的一些实施例中,所述处理操作包括:所述重命名操作;所述文件处理模块,还用于获取所述重命名操作对应的重命名名称;依据所述目录标识和所述重命名名称拼接出重命名索引参数;建立所述重命名索引参数与所述目标元数据之间的映射关系,并将所述重命名索引参数写入所述目录映射数据;从所述目录映射数据中删除所述文件索引参数,实现针对所述目标文件的所述重命名操作。
在本申请的一些实施例中,所述目录映射数据中还包括:元数据索引参数和数据块元数据之间的映射关系;所述处理操作包括:所述元数据读取操作;所述文件处理模块,还用于从所述目标元数据中解析出所述目标文件的文件标识;利用所述文件标识和所述元数据读取操作对应的数据块的块标识,拼接成元数据索引参数;其中,所述数据块是对所述目标文件进行切分得到的,所述块标识用于唯一标志所述数据块;依据所述元数据索引参数,从所述目录映射数据中查找出所述数据块对应的数据块元数据;对所述数据块元数据进行解析,得到所述目标文件的文件元数据,实现针对所述目标文件的所述元数据读取操作。
在本申请的一些实施例中,所述文件处理模块,还用于对所述数据块元数据进行更新,得到更新后的数据块元数据;建立所述元数据查找参数与所述更新后的数据块元数据之间的映射关系,并将所述更新后的数据块元数据写入所述目录映射数据;从所述目录映射数据中删除所述数据块元数据。
在本申请的一些实施例中,所述处理操作包括:所述删除操作;所述文件处理模块,还用于将所述目标元数据和所述文件索引参数从所述目录映射数据中删除,实现针对所述目标文件的所述删除操作。
在本申请的一些实施例中,数据处理装置还包括:文件创建模块;
所述文件创建模块,用于在所述目标目录中,创建所述目标文件;利用针对所述目标目录分配的唯一的所述目录标识和所述目标文件的所述文件名称,生成所述目标文件对应的所述文件索引参数;将所述目标文件的属性信息,确定为所述目标文件对应的所述目标元数据;其中,所述目标文件的属性信息中至少包括:针对所述目标文件所分配唯一的文件标识和所述目标文件中的数据块数量中的一个或多个;建立所述文件索引参数和所述目标元数据之间的映射关系,并将所述文件索引参数和所述目标元数据写入所述目录映射数据。
在本申请的一些实施例中,数据处理装置还包括:目录处理模块;
所述目录处理模块,用于从所述目录元数据中,读取出所述目标目录对应的属性信息,所述目标目录对应的属性信息至少包括:目录标识和目录创建时间中的一个或多个,所述目录标识用于唯一标志所述目标目录。
在本申请的一些实施例中,所述目录处理模块,还用于依据所述目标目录对应的属性信息中的所述目录标识,构造出文件查询前缀;从所述目录映射数据中,查找出具有所述文件查询前缀的候选索引参数,以及所述候选查找参数对应的候选文件元数据;对所述候选文件元数据进行解析,得到处于所述目标目录下的各个文件的名称,以及所述各个文件的数据块数量。
在本申请的一些实施例中,所述目录处理模块,还用于创建所述目标目录,并针对所述目标目录生成所述目录标识;对所述目标目录进行编码,得到所述目录索引参数;将所述目录标识和所述目标目录的创建时间,确定为所述目录元数据;建立所述目录索引参数和所述目录元数据之间的映射关系,并将所述目录索引参数和所述目录元数据写入所述目录映射数据中。
在本申请的一些实施例中,所述目录处理模块,还用于获取替换目录,并对所述替换目录进行编码,得到目录索引前缀;其中,所述替换目录是指将所述目标目录下的目录所要移动到的目录;从所述目录映射数据中,查找出以所述目录索引参数作为前缀的匹配目录索引参数,以及所述匹配目录索引参数对应匹配目录元数据;将所述匹配目录索引参数的前缀替换为所述目录索引前缀,得到替换后的索引参数,并建立所述替换后的索引参数与所述匹配目录元数据之间的映射关系;将所述替换后的索引参数写入所述目录映射数据,并从所述目录映射数据中删除所述匹配目录索引参数。
本申请实施例提供一种数据处理设备,包括:
存储器,用于存储可执行数据处理指令;
处理器,用于执行所述存储器中存储的可执行数据处理指令时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行数据处理指令,用于引起处理器执行时,实现本申请实施例提供的数据处理方法。
本申请实施例具有以下有益效果:数据处理设备接收针对目标文件的处理操作,并对目标文件对应的目标目录进行编码,得到目录索引参数,然后利用目录索引参数从目录映射数据中进行第一次查找,得到描述目标目录的属性的目录元数据,再基于目录元数据和文件名称所得到的文件索引参数,从目录映射数据中进行第二次查找,从而只需要经过两次查找就能够得到描述目标文件的属性的目标元数据,查询耗时较短;并且,由于文件索引参数是基于目录元数据和文件名称构成的,不会受到目标目录的名称的影响,即使对目标文件进行移动,也无需对目标文件的索引参数进行修改,减少了对文件进行处理时所需要修改的参数量。如此,数据处理设备在对目录树中的文件进行数据处理时,查找效率较高,修改的参数量更少,从而使得数据处理的耗时减少,最终提高数据处理的整体效率。
附图说明
图1是目录树的示意图;
图2A是本申请实施例提供的数据处理系统的一个可选的架构示意图;
图2B是本申请实施例提供的数据处理系统的另一个可选的架构示意图;
图3是本申请实施例提供的数据处理设备的结构示意图;
图4是本申请实施例提供的数据处理方法的一个可选的流程示意图一;
图5是本申请实施例提供的构成目录索引参数的示意图;
图6是本申请实施例提供的查找目标元数据的示意图;
图7是本申请实施例提供的数据处理方法的一个可选的流程示意图二;
图8是本申请实施例的对目标文件进行重命名的过程示意图;
图9是本申请实施例提供的数据处理方法的一个可选的流程示意图三;
图10是本申请实施例提供的查询候选文件元数据的过程示意图;
图11是本申请实施例提供的对目录树中的目录和文件进行处理的系统框架示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(Cloud Computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
2)分布式文件系统,是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,或者若干不同逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。分布式文件系统在网络上任意位置的资源提供一个逻辑上的树形文件系统结果,从而使用户访问分布在网络上的共享文件更加简便。
3)名字空间,是指分布式文件系统中的文件目录的组织方式,是文件系统的重要组成部分,为用户提供可视化的、可理解的文件系统视图,从而解决或降低人类与计算机之间在数据存储上的语义间隔。
4)元数据,主要用于描述数据的属性,用来指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,用户在使用数据时可以首先查看其元数据,以便能够获取自己所需的信息。元数据也是数据,可以用类似数据的方法进行存储和获取。
5)索引参数,是用来进行查找元数据的参数。在本申请中,索引参数和元数据之间的映射关系可以利用“键值对”来进行实现,即将索引参数作为键,将元数据作为值,建立映射关系。
6)区块链,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
名字空间负责管理分布式文件系统的目录树结构和文件元数据。当名字空间的处理对象是目录树时,实质上就是对目录树中的文件进行数据处理。目前的目录树存在两种主流构建形式,一种是基于在内存构建目录树,另一种则是基于日志结构的合并树(Log-Structured Merge-Tree,LSM-Tree)存储引擎构建目录树。
然而,在内存中构建目录树时,内存消耗较大,其目录节点的数量依赖于内存容量,并且进程一旦重启,需要从磁盘中读取数据并在内存中重新构建目录树,而重建目录树的耗时较长,需要较长的时间才能恢复服务。
基于LSM-Tree构建目录树,其数据可以持久化存储,且容量不受限制,即使进程重启,也不会有重建目录数的重建开销,解决了内存中构建的目录树中的目录和文件进行数据处理时的问题。但是,基于LSM-Tree构建目录树,申请人发现其在对文件的数据处理上存在着不足。
具体的,在基于LSM-Tree构建目录树时,有两种不同实现方式,这里分别记为基于LSM-Tree的第一方案和基于LSM-Tree的第二方案。
下面,结合图1分别对基于LSM-Tree的第一方案和基于LSM-Tree的第二方案进行说明。其中,图1是目录树的示意图,在/(根节点)1-1下,分为用户节点home1-2和系统节点usr1-3,在用户节点home1-2下,具有用户所存储的文件a.dat1-4和b.dat1-5。
在基于LSM-Tree的第一方案中,是以文件路径为键,以文件元数据为值来存储目录树。表1示出了基于LSM-Tree的第一方案的键值对结构示例。
表1
其中,目录元数据是用来描述目录的属性的数据,文件元数据是用来描述文件的属性的数据。
基于表1可知,在基于LSM-Tree的第一方案中,若是用户想要获取文件a.dat的元数据时,需要先构建出该文件的键,即先构建出/home/a.dat,以遍历所有的键值对;在用户重命名/home目录时,则需要对所有以“/home”为前缀的键都进行更新。
由此可见,虽然基于LSM-Tree的第一方案查找效率较高,但是由于每个节点的键都包含有路径信息,形成大量重复冗余数据,使得移动文件时(可以看作是对文件所在的目录进行重命名),需要对文件的键进行修改,而在文件较多时,该过程无疑会增加耗时,进而数据处理的整体效率仍旧较低。
在基于LSM-Tree的第二方案中,则是给每个目录节点建立元数据,并分配唯一的目录标识(entry_id),然后以父目录entry_id+目录/文件名为键,以目录或文件的元数据。表2示出了基于LSM-Tree的第二方案的键值对结构示例。
表2
键 | 值 |
0/ | 目录元数据(enrty_id=1) |
1/home | 目录元数据(enrty_id=2) |
1/usr | 目录元数据(enrty_id=3) |
2/a.dat | 文件元数据 |
2/b.dat | 文件元数据 |
结合表2可知,在基于LSM-Tree的第二方案中,查找文件或目录需要按照目录层级进行查找,即先查找父目录的entry_id,再以父目录entry_id+目录名称为键,查找对应的entry_id,层层递进,直至查找完成。例如,若是想要查找图1中的a.dat文件时,需要先查找根目录的entry_id,即1,再以1/home为键,查找/home目录的entry_id,即2,接着再以2/a.dat为键,查找到a.dat的文件元数据。在重命名目录时,只需要修改目录对应的键,entry_id不变,例如,将/home修改为/test时,只需要将键1/home修改为1/test。
由此可见,虽然基于LSM-Tree的第二方案虽然冗余数据较少,针对文件移动操作、目录重命名时的效率较高,但是,查询效率却有所下降,查找次数等于目录深度,从而使得数据处理的整体效率仍旧较低。
综上所述,相关技术中,由于数据查询耗时长以及索引参数中存在冗余等原因,使得对目录树中的文件进行数据处理时,需要消耗较长的时间,从而数据处理的整体效率低下。
本申请实施例提供一种数据处理方法、装置、设备和计算机可读存储介质,能够提高数据处理的整体效率。下面说明本申请实施例提供的数据处理设备的示例性应用,本申请实施例提供的数据处理设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器,还可以实施为由服务器和终端所组成的设备集群。下面,将说明数据处理设备实施为服务器时的示例性应用。
参见图2A,图2A是本申请实施例提供的数据处理系统的一个可选的架构示意图。为实现支撑一个数据处理应用,在数据处理系统100中,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400用于在图形界面410获取用户针对目标文件的处理操作,并通过网络300将处理操作发送给服务器200。
服务器200用于接收针对目标文件的处理操作,并对目标文件所在的目标目录进行编码,得到目录索引参数;通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据;目录映射数据存储了目录索引参数和目录元数据的映射关系,以及文件索引参数和目标文件对应的目标元数据的映射关系;依据目录元数据和目标文件的文件名称构造出的文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据;基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。服务器200还用于在数据处理之后,通过网络300向终端400返回处理完成的提示。
终端400还用于在图形界面410显示处理完成的提示。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
本申请实施例还可以通过区块链技术来实现,参见图2B,图2B是本申请实施例提供的数据处理系统的另一个可选的架构示意图。在图2B的数据处理系统100中,服务器将处理操作的操作类型(即移动、重命名等)、文件索引参数和目标元数据上链,以保证针对目标文件的处理操作都能够被记录,且记录不可篡改。
在一些实施例中,服务器200可以加入区块链网络700而成为其中的一个节点。区块链网络700的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备,都可以在不需要授权的情况下接入区块链网络700,以作为区块链网络700的共识节点,例如,将终端600映射为区块链网络700中的共识节点700-1,以在将元数据上链时进行共识。
以区块链网络700为联盟链为例,终端600在获得授权后可以接入区块链网络700而成为节点。服务器200接收针对目标文件的处理操作,并对目标文件所在的目标目录进行编码,得到目录索引参数;通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据;依据目录元数据和目标文件的文件名称构造出的文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据;基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,同时将处理操作的操作类型、文件索引参数和目标元数据发送区块链网络700中进行共识。当共识通过时,区块链网络700会为将处理操作的操作类型、文件索引参数和目标元数据分配新区块,将处理操作的操作类型、文件索引参数和目标元数据写入新区块,并将新区块添加在区块链的末端。
参见图3,图3是本申请实施例提供的数据处理设备的结构示意图,图3所示的数据处理设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。数据处理设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器550中的数据处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:操作接收模块5551、信息编码模块5552、数据查找模块5553、文件处理模块5554、文件创建模块5555和目录处理模块5556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
示例性的,本申请实施例提供一种数据处理设备,包括:
存储器,用于存储可执行数据处理指令;
处理器,用于执行所述存储器中存储的可执行数据处理指令时,实现本申请实施例提供的数据处理方法。
下面,将结合本申请实施例提供的数据处理设备的示例性应用和实施,说明本申请实施例提供的数据处理方法。需要说明的是,当数据处理设备实施为由服务器和终端所组成的设备集群时,本申请实施例提供的数据处理方法可以借助于云技术实现。
参见图4,图4是本申请实施例提供的数据处理方法的一个可选的流程示意图一,将结合图4示出的步骤进行说明。
S101、接收针对目标文件的处理操作,并对目标文件所在的目标目录进行编码,得到目录索引参数。
本申请实施例是在对目录树中的文件进行数据处理的场景下实现的,例如,对目录树中的文件进行移动,或者元数据读取等操作下实现的。数据处理设备会实时接收针对目标文件的处理操作,并提取到目标文件的所在的目录的路径,即得到目标目录,然后对目标目录进行编码,得到用于目标文件所在的目录的元数据的目录索引参数。
需要说明的是,目标文件是由路径信息所指定的,目标文件的路径信息是由目标文件所在的目录的路径,即目标目录,以及目标文件的文件名称所组成的,数据处理设备可以从目标文件的路径信息中,抽取出完整的目标目录,以进行编码。
在一些实施例中,目标文件可以是通过用户所输入的路径信息所指定的,例如,用户在命令行中输入需要进行处理的文件的路径信息,然后数据处理设备依据接收到的路径信息,明确用户需要进行处理的目标文件,从而实现按照用户指示进行数据处理。在另一些实施例中,目标文件可以是由数据处理设备所指定的,例如,数据处理设备在到达设定时间之后,自行确定出需要进行处理的目标文件(通过随机选取,或者是选取用户操作较为频繁的文件等),以自动对目标文件进行处理,减少用户数据处理时的操作负担。
数据处理设备可以通过给该目标目录增加定值前缀,完成对目标目录的编码,得到目录索引参数。示例性的,图5是本申请实施例提供的构成目录索引参数的示意图。参见图5,当目标目录为/data/dir1/sub_dir 5-1时,数据处理设备可以给该目标目录,增加根目录“/”所对应的定值前缀5-2,例如,0,从而“0/data/dir1/sub_dir”就是目录索引参数5-3。
数据处理设备也可以直接将目标目录中的每个目录节点转换成数字或者是字符,然后将每个目录节点对应的数字或字符拼接起来,完成对目标目录的编码,得到目录索引参数。例如,当目标目录为“/data/a.file”时,数据处理设备将“/data”编码为1,将“/a.file”编码为2,再进行拼接,所得到的编码结果12就是目录索引参数。
数据处理设备还可以是针对目标目录生成唯一的字符串,将该字符串作为目录索引参数。例如,数据处理设备将“/data/a.file”转换成的字符串“daf”,将该字符串作为目录索引参数。
可以理解的是,针对目标文件的处理操作,可以是针对目标文件的移动操作、删除操作、重命名操作、元数据读取操作等等,本申请在此不作限定。
数据处理设备可以通过用户在前端的命令行或操作界面上的操作,来得到处理操作。例如,用户在前端的命令行中输入移动操作对应的指令串,或者是在操作界面上选中目标文件,点击删除按钮以触发删除操作。
数据处理设备还可以通过对用户以往对目标文件的操作进行分析,从而预测出需要对目标文件进行的处理操作。例如,当用户以往经常对目标文件进行元数据读取时,数据处理设备可以在当前将针对目标文件的处理操作确定为元数据读取操作,以自动读取目标文件的元数据并提供给用户。
需要说明的是,目标文件是指要进行数据处理操作的文件,其可以是目录树中的任意一个文件,并不是特指某个文件。
S102、通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据。
目录树表明了目录和文件之间的层级关系,而目录映射数据通过索引参数和元数据的映射关系存储了目录树,从而,目录映射数据存储了目录索引参数和目录元数据之间的映射关系,以及文件索引数据和目标文件对应的目标元数据的映射关系。数据处理设备在得到目录索引参数之后,就可以利用该映射关系,从目录映射数据中查找出与目录索引参数相对应的元数据,所查找到的元数据就是目录元数据,能够描述目标目录的属性。
需要说明的是,在一些实施例中,目录索引参数和目录元数据之间的映射关系,以及文件索引参数和目标元数据之间的映射关系,可以利用键值对来表示,即目录映射数据是将目录索引参数和文件索引参数分别作为键,将目录元数据和目标元数据分别作为值,以进行存储。在另一些实施例中,目录索引参数和目录元数据之间的映射关系,以及文件索引参数和目标元数据之间的映射关系,还可以利用关系模型来进行组织,例如,在数据表的同一行存储目录索引参数和对应的目录元数据等,本申请在此不作限定。
可以理解的是,目录元数据所描述的目标目录的属性,可以包括目录的创建时间、目录在创建时数据处理设备针对目录分配的唯一代表目标目录的目录标识等。
S103、依据目录元数据和目标文件的文件名称构造出的文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据。
数据处理设备依据目录元数据和文件名称,开始对目录映射数据的第二次查找,得到目标文件对应的目标元数据。在一些实施例中,数据处理设备可以对目录元数据进行解析,依据解析出的目录标识和文件名称构造文件索引参数,从而查找出目标元数据。在另一些实施例中,数据处理设备还可以利用目录元数据中的创建时间和文件名称构造文件索引参数,然后再依据文件索引参数查找出目标元数据。
可以理解的是,文件名称一般都会处于目标文件的完整路径信息的末尾,且具有一定的格式(例如用“.”区分名称和格式后缀),从而,数据处理设备从目标文件的路径信息可以提取出目标文件的文件名称。例如,当目标文件完整的路径信息为/data/dir1/sub_dir1/a.dat时,目标文件的文件名称就为a.dat,其中,后缀dat表征了目标文件的格式。
需要说明的是,本申请实施例中,一方面,数据处理设备先通过编码得到的目录索引参数查找得到目标目录对应的目录元数据,此时,经过了一次查找;然后,再结合目录元数据合合文件名称得到文件索引参数,又经过了一次查找,就能够得到目标文件对应的目标元数据,查找效率较高,并且查找效率稳定(稳定在两次),无疑会避免因为查找深度过深,拖累数据处理的整体效率的问题。
另一方面,由于文件索引参数是基于目录元数据和目标文件所构成的,从而在针对目标元数据构建索引参数时,不需要将目标文件的完整的目录路径囊括进去,即不涉及到具体的目标目录,不会包含冗余数据,从而,即使数据处理设备需要对目标文件进行移动,或者是对目标文件所在的目标目录进行更名,只需要修改目标目录对应的目录索引参数,不会涉及到对目标目录下的目标文件的文件索引参数的修改,从而对目标文件进行处理时需要修改的参数量就会减少,能够避免移动文件时需要对索引参数进行需要修改的问题。
可以理解的是,目标元数据所描述的目标文件的属性,可以包括目标文件的创建时间、目标文件的文件标识、目标文件的大小、目标文件的数据块数量等等,本申请在此不作限定。
S104、基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作。
由于目录树是以索引参数和元数据之间的映射关系进行存储的,从而,对目录树中的文件进行处理,实质上就是对文件对应的索引参数和文件对应的元数据进行处理,也就需要对索引参数和元数据进行操作。数据处理设备在经过两次查找,得到目标元数据之后,会明确处理操作是哪种操作,然后对文件索引参数和目标元数据来进行操作,从而实现对目标文件的处理操作。处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
在一些实施例中,数据处理设备可以通过改变文件索引参数和目标元数据之间的映射关系,来实现对目标文件的处理操作。在另一些实施例中,数据处理设备还可以通过对文件索引参数和/或目标元数据进行更新、删除等操作,来实现对目标文件的处理操作。
本申请实施例中,数据处理设备接收针对目标文件的处理操作,并对目标文件对应的目标目录进行编码,得到目录索引参数,然后利用目录索引参数从目录映射数据中进行第一次查找,得到描述目标目录的属性的目录元数据,再基于目录元数据和文件名称所得到的文件索引参数,从目录映射数据中进行第二次查找,从而只需要经过两次查找就能够得到描述目标文件的属性的目标元数据,查询耗时较短;并且,由于文件索引参数是基于目录元数据和文件名称构成的,不会受到目标目录的名称的影响,即使对目标文件进行移动,也无需对目标文件的索引参数进行修改,减少了文件进行处理时所需要修改的参数量。如此,数据处理设备在对目录树中的文件进行数据处理时,查找效率较高,修改的参数量更少,从而使得数据处理的耗时减少,最终提高数据处理的整体效率。
在本申请的一些实施例中,依据目录元数据和目标文件的文件名称构造出的文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据,即S103的具体实现过程,可以包括:S1031-S1033,如下:
S1031、从目录元数据中解析出目标目录对应的目录标识。
目录元数据中存储了目标目录的各种属性信息。数据处理设备对目录元数据进行解析,从中提取出目标目录对应的目录标识。
需要说明的是,目标目录对应的目录标识,是数据处理设备创建目标目录时,针对该目标目录所分配的全局唯一的标识。目录标识可以是数字,也可以是字符,本申请在此不作限定。
S1032、利用目录标识和目标文件的文件名称,生成文件索引参数。
S1033、依据文件索引参数,从目录映射数据中查找出描述目标文件的属性的目标元数据。
数据处理设备利用目录标识和目标文件的文件名称生成用于查找目标文件对应的元数据的文件索引参数,接着,利用文件索引元数据从目录映射数据中查找出目标元数据。
数据处理设备可以通过将目录标识和文件名称进行拼接,得到文件索引参数。例如,当/data/dir1/sub_dir1的目录标识为1时,数据处理设备可以将1+a.dat作为文件索引参数。数据处理设备还可以将目录标识和文件名称进行编码,将编码得到结果作为文件索引参数。例如,将1和a.dat通过编码算法进行编码,所得到编码结果1a0021,就是文件索引参数。
示例性的,图6是本申请实施例提供的查找目标元数据的示意图。参见图6,数据处理设备依据目标目录6-1,在第一次查找6-2时查找目录元数据6-3,从而再基于目录元数据6-3中的目录标识6-31和文件名称6-4,进行第二次查找6-5,得到目标元数据6-6。从而可见,本申请实施例中,无论对于任何文件,查找次数都是2。
本申请实施例中,数据处理设备会从目录元数据中解析出目录标识,然后依据目录标识和文件名称生成文件索引参数,从而查找目标元数据。如此,数据处理设备针对任何文件,只需要两次就可以得到其元数据,且文件索引参数不包含目标目录等冗余数据,即使对目标文件所在的目标目录进行修改,也不需要对文件索引参数进行修改。
参见图7,图7是本申请实施例提供的数据处理方法的一个可选的流程示意图二。在本申请的一些实施例中,处理操作包括:移动操作,此时,基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,即S104的具体实现过程,可以包括:S1041-S1045,如下:
S1041、对移动操作对应的移动目录进行编码,得到移动索引参数。
移动操作需要有对应的移动目录才能实现,其中,移动目录表征将目标文件移动到的目录,即在移动操作时,目标目录是目标文件的原目录,移动目录是目标文件的新目录。数据处理设备对移动目录进行与目标目录相同方式的编码,所得到的编码结果就是移动索引参数。
在一些实施例中,移动目录可以是在数据处理设备接收移动操作时就已经明确的,从而,数据处理设备先明确移动目录,然后再对目标目录进行编码,从而通过两次查找得到目标元数据,再对移动目录进行编码,得到移动索引参数。
在另一些实施例中,移动目录可以是在数据处理设备得到目标元数据之后才确定出的,即数据处理设备在需要对目标元数据和文件索引参数进行操作之前,才确定出移动目录,从而开始对移动目录进行编码。
可以理解的是,移动目录可以是由用户指定的目录,也可以是由数据处理设备自行创建并指定的目录。移动目录在创建时,数据处理设备针对其分配了唯一的标识,该标识即为移动标识。
S1042、依据移动索引参数,从目录映射数据中筛选出移动目录对应的最新元数据。
S1043、从移动元数据中,解析出移动目录的移动标识,并利用移动标识和文件名称,拼接出最新索引参数。
数据处理设备在得到移动索引参数之后,就会从目录映射数据中查找移动索引参数所对应的元数据,所得到元数据就是移动目录的元数据,即移动元数据。数据处理设备接着对移动元数据进行解析,从而得到能够唯一表示移动目录的移动标识,然后将移动标识和目标文件的文件名称进行拼接,得到目标元数据的最新索引参数。
可以理解的是,数据处理设备可以利用预设字符,将移动标识和文件名称拼接起来,也可以直接将移动标识和文件名称拼接起来,本申请在不作限定。在拼接时,数据处理设备可以按照移动标识在前,文件名称在后的顺序进行拼接,也可以按照文件名称在前,移动标识在后的顺序进行拼接,本申请在此不作限定。
S1044、建立最新索引参数与目标元数据之间的映射关系,并将最新查找参数写入目录映射数据。
S1045、从目录映射数据中删除文件索引参数,实现对目标文件的移动操作。
数据处理设备将最新查找参数作为键,将目标元数据作为值,建立最新索引参数与目标元数据之间的映射关系,并将最新索引参数添加到目录映射数据中。同时,为了保证利用仅能利用最新索引参数查找到目标元数据,数据处理设备会将原来的文件索引参数从目标映射数据中删除,以利用最新索引参数与目标元数据之间的映射关系,替换最新索引参数与目标元数据之间的映射关系。从而实现建立目标文件与移动目录的联系,即实现针对目标文件的移动操作。
本申请实施例中,数据处理设备能够先对移动操作所对应的移动目录进行编码,从而得到移动索引参数,进而索引到移动元数据,然后从移动元数据中解析出移动标识,以结合文件名称重新构造处最新索引参数,利用最新索引参数和目标元数据的新映射关系替换文件索引参数和目标元数据的旧映射关系,实现对目标文件的移动操作。
在本申请的一些实施例中,处理操作包括:重命名操作,从而,基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,即S104的具体实现过,可以包括:S1046-S1049,如下:
S1046、获取重命名操作对应的重命名名称。
重命名操作需要改变目标文件的文件名称,因此,在本申请实施例中,数据处理设备会先获取重命名操作所对应的重命名名称,即获取目标文件的新名称。可以理解的是,重命名名称可以是由用户指定的,也可以是由数据处理设备自动生成的,例如,将随机生成的字符串作为重命名名称等。
S1047、依据目录标识和重命名名称拼接出重命名索引参数。
数据处理设备将目标文件原本的目录标识,与重命名名称进行拼接,所得到的拼接结果就是重命名索引参数。可以理解的是,数据处理设备可以利用预设字符将目录标识和重命名名称连接起来,也可以直接将目录标识和重命名名称连接起来,以实现目目录标识和重命名名称的拼接。其中,目录标识和重命名名称之间的顺序可以按照实际情况进行设置。
S1048、建立重命名索引参数与目标元数据之间的映射关系,并将重命名索引参数写入目录映射数据。
S1049、从目录映射数据中删除文件索引参数,实现针对目标文件的重命名操作。
数据处理设备将重命名索引参数作为键,将目标元数据作为值,以键值对作为重命名索引参数和目标元数据之间的映射关系,将重命名索引参数写入目录映射数据,并删除文件索引参数,从而完成重命名操作。
示例性的,图8是本申请实施例的对目标文件进行重命名的过程示意图。目标文件的文件名称为a.dat8-1,目录标识为X8-2,重命名名称为b.dat8-3,在目录映射数据中,原本存储有原本的文件索引参数X+a.dat8-4与目标元数据8-5的映射(虚线)。数据处理设备将目录标识X8-1与b.dat8-3拼接,就会得到重命名索引参数X+b.dat8-6,并建立X+b.dat8-6与目标元数据8-5的映射,删除原本的文件索引参数X+a.dat8-4,从而删除X+a.dat8-4与目标元数据8-5的映射,以完成对目标文件的重命名。
本申请实施例中,数据处理设备会利用目录标识和重命名名称生成重命名索引参数,利用建立起的重命名索引参数与目标元数据之间的映射关系,替换文件索引参数与目标元数据之间的映射关系,从而实现了对目标文件的重命名操作。
在本申请的一些实施例中,目录映射数据中还包括:元数据索引参数和数据块元数据之间的映射关系;处理操作包括:元数据读取操作,从而,基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,即S104的具体实现过程,可以包括:S10410-S10413,如下:
S10410、从目标元数据中解析出目标文件的文件标识。
S10411、利用文件标识和元数据读取操作对应的数据块的块标识,拼接成元数据索引参数。
目标元数据中存储了目标文件的属性信息,数据处理设备从目标元数据中解析出能够唯一表示目标文件的文件标识。接着,数据处理设备再对文件标识,以及元数据读取操作所对应的数据块的块标识进行拼接,得到元数据索引参数。
其中,数据块是对目标文件进行切分得到的,是在目标文件创建时就已经切分好的。数据处理设备对目标文件切分的原因,是目标文件的大小比较大时,在查看或者修改时,操作成本也会较大。并且,用户在查看目标文件的元数据时,很有可能只是对目标文件的一部分数据进行查看,因此,数据处理设备将在创建好目标文件之后,就会将目标文件切分成数据块,以减小查看或修改时的操作成本。
可以理解的是,块标识用于唯一标志数据块,即每个数据块都有其唯一对应的块标识。块标识是数据处理设备在生成数据块时,就已经分配好的。
S10412、依据元数据索引参数,从目录映射数据中查找出数据块对应的数据块元数据。
S10413、对数据块元数据进行解析,得到目标文件的文件元数据,实现针对目标对象的元数据读取操作。
数据处理设备在得到元数据索引参数之后,就会从目录映射数据中查找与元数据索引参数具有映射关系的元数据,从而所得到的元数据就是数据块所对应的数据块元数据。接着,数据处理设备对数据块元数据进行解析,从中提取出目标文件的文件元数据,例如,目标文件的数据块的大小、格式等等。这样,数据处理设备就实现了对目标文件的元数据读取操作。
本申请实施例中,数据处理设备会从查找到的目标元数据中解析出文件标识,然后结合文件标识和数据块的块标识,得到元数据索引参数,以查找数据块所对应的数据块元数据,然后对数据块元数据进行解析,就得到了目标文件的文件元数据,从而实现对目标文件的元数据读取操作。
在本申请的一些实施例中,依据元数据索引参数,从目录映射数据中查找出数据块对应的数据块元数据,即S10412之后,该方法还可以包括:S10414-S10416,如下:
S10414、对数据块元数据进行更新,得到更新后的数据块元数据。
数据处理设备从数据块中的属性信息中确定出需要修改的信息,然后对需要修改的信息进行修改,在修改完成之后,就会得到更新后的数据块元数据。
可以理解的是,属性信息中需要修改的信息,以及对需要修改的信息的修改方式,都可以根据用户的操作来确定,或者是由数据处理设备自动确定,本申请在此不作限定。
S10415、建立元数据查找参数与更新后的数据块元数据之间的映射关系,并将更新后的数据块元数据写入目录映射数据。
S10416、从目录映射数据中删除数据块元数据。
数据处理设备在完成对数据块元数据的更新之后,就会建立元数据查找参数和更新后的数据块元数据之间的映射关系,利用更新后的数据块元数据替代目录映射数据的数据块元数据。需要说明的是,本申请实施例对数据块元数据进行更新,实质上就是对目标文件的文件元数据进行更新,即本申请实施例实现了对文件元数据的更新操作。
本申请实施例中,数据处理设备会对读取出的数据块元数据进行更新,然后在目录映射数据中,利用元数据查找参数和更新后的数据块元数据之间的映射关系,来替换原有的元数据查找参数和数据块元数据之间的映射关系,从而实现对文件元数据的更新操作。
在本申请的一些实施例中,处理操作包括:删除操作,此时,基于对文件索引参数和目标元数据的操作,实现对目标文件的处理操作,即S104的具体实现过程,可以包括:S10417,如下:
S10417、将目标元数据和文件索引参数从目录映射数据中删除,实现针对目标文件的删除操作。
当数据处理设备确定处理操作是删除操作时,就会通过将目标元数据和文件索引参数从目录映射数据中删除,达到在目录映射数据中剔除文件索引参数和目标元数据的目的,从而,目标文件的相关数据已经不在目录树中了,就实现了针对目标文件的删除操作。
本申请实施例中,数据处理设备还能够在处理操作是删除操作时,将目标元数据和文件索引参数从目录映射数据中删除,从而实现针对目标文件的删除操作。
基于图4,参见图9,图9是本申请实施例提供的数据处理方法的一个可选的流程示意图三。在本申请的一些实施例中,接收针对目标文件的处理操作之前,即在S101之前,该方法还可以包括:S105-S108,如下:
S105、在目标目录中,创建目标文件。
数据处理设备在接收针对目标文件的处理操作之前,首先需要创建出目标文件,以及将目标文件对应的文件索引参数和目标元数据的映射关系加入至目录映射数据中,这样,才能在后续依据文件索引参数从目录映射数据中查询出目标元数据。
可以理解的是,数据处理设备可以是响应于用户的操作在目标目录中创建目标文件的,也可以是自动在目标目录中创建目标文件的(例如自动生成操作日志等情况),本申请实施例在此不作限定。
S106、利用针对目标目录分配的唯一的目录标识和目标文件的文件名称,生成目标文件对应的文件索引参数。
数据处理设备在创建好目标文件之后,就会将针对目标目录所分配的目录标识,以及目标文件的文件名称进行拼接,得到目标文件对应的文件索引参数,或者是将目录标识和文件名称进行编码,得到目标文件对应的文件索引参数,本申请在此不作限定。
S107、将目标文件的属性信息,确定为目标文件对应的目标元数据。
需要说明的是,目标文件的属性信息中至少包括:针对目标文件所分配唯一的文件标识和目标文件中的数据块数量中的一个或多个。
其中,唯一的文件标识是数据处理设备在创建目标文件时,就对目标文件进行分配的,文件标识可以是数字,也可以是字符,本申请在此不作限定。同时,数据处理设备在完成对目标文件的创建之后,还会将目标文件切分成数据块,在完成切分之后,数据处理设备就会得到数据块数量。
可以理解的是,S106和S107的执行顺序,并不会影响到文件索引参数和目标元数据之间的映射关系的建立,因此,在本申请其他的实施例中,数据处理设备还能够先执行S107,后执行S106,或者是同时执行S106和S107,以得到文件索引参数和目标元数据。
S108、建立文件索引参数和目标元数据之间的映射关系,并将文件索引参数和目标元数据写入目录映射数据。
数据处理设备在得到文件索引参数和目标元数据之后,就可以通过将文件索引参数作为键,将目标元数据作为值,来建立文件索引参数和目标元数据之间的映射关系,或者是将文件索引参数和目标元数据写入数据表的同一行的不同列中,来建立文件索引参数和目标元数据之间的索引关系。最后,数据处理设备会将文件索引参数和目标元数据写入到目录映射数据中,以便于后续利用文件索引参数在目录映射数据中查找到目标元数据。
本申请实施例中,数据处理设备在接收针对目标文件的处理操作之后,能够先创建出目标文件,并针对目标文件构建文件索引参数和目标元数据,建立文件索引参数和目标元数据之间的映射关系,并将文件索引参数和目标元数据写入目录映射数据。如此,数据处理设备在后续通过编码得到文件索引参数之后,就能够在目录映射数据中查找出目标元数据。
在本申请中,数据处理设备在得到目录元数据之后,除了通过目录元数据中的目录标识等信息实现对目标文件的处理操作之外,还能够对基于对目录索引参数和目录元数据的操作,实现针对目录的处理。下面,对目录的处理进行介绍。
在本申请的一些实施例中,通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据之后,即在S102之后,该方法还可以包括:S109,如下:
S109、从目录元数据中,读取出目标目录对应的属性信息。
本申请实施例中,数据处理设备在得到目录元数据之后,还可以对目录元数据进行解析,从而得到目标目录所对应的属性信息,以便于用户或者数据处理设备了解目标目录的情况。从而,本申请实施例实现了对目录属性的读取操作。
需要说明的是,目标目录对应的属性信息至少包括:目录标识和目录创建时间中的一个或多个,目录标识用于唯一标志目标目录,是数据处理设备在创建目标目录时就分配的。
本申请实施例中,数据处理设备在得到目录元数据之后,可以对目录元数据进行解析,从而能够得到目标目录对应的属性信息,以实现对目录属性的读取操作。
在本申请的一些实施例中,从目录元数据中,读取出目标目录对应的属性信息之后,即在S109之后,该方法还可以包括:S110-S112,如下:
S110、依据目标目录对应的属性信息中的目录标识,构造出文件查询前缀。
数据处理设备从目标目录对应的属性信息中,提取出目录标识,之后,数据处理设备可以直接将目录标识作为文件查询前缀,也可以对目标标识进行编码得到文件查询前缀。
S111、从目录映射数据中,查找出具有文件查询前缀的候选索引参数,以及候选查找参数对应的候选文件元数据。
数据处理设备在得到文件查询前缀之后,就会将从目录映射数据的各个索引参数中,查找带有文件查询前缀的索引参数,将这些索引参数记为候选索引参数。之后,数据处理设备会利用候选索引参数,继续从目录映射数据中查找对应的文件元数据,从而得到候选文件元数据。
示例性的,图10是本申请实施例提供的查询候选文件元数据的过程示意图。参见图10,目标目录对应的属性信息中的目录标识为N10-1,数据处理设备首次在目录映射数据10-2中,查询出所有以N为前缀的索引参数,即索引参数N/1.dat10-3、索引参数N/s.txt10-4,这些查询出的索引参数就是候选索引参数。接着,数据处理设备开始对目录映射数据进行第二次查询,就会得到N/1.dat10-3所对应的文件元数据10-5,以及N/s.txt10-4对应的文件元数据10-6,这些文件元数据即为候选文件元数据。
S112、对候选文件元数据进行解析,得到处于目标目录下的各个文件的名称,以及各个文件的数据块数量。
数据处理设备对候选文件元数据进行解析,并进行文件名称的提取,以及数据块数量的提取,从而得到不同文件的名称和数据块数量。这些文件都是在目标目录下的,因此,所得到不同文件的名称和数据块数量,就能够组成目标目录下的文件列表,以便于明确目标目录下的文件的情况。
本申请实施例中,数据处理设备在得到目标目录对应的属性信息之后,就会利用目标目录对应的属性信息中的目录标识,构造出文件查询前缀,并在目标映射数据中查询出具有该文件查询前缀的候选索引参数,进而再次查询得到候选文件元数据,最后通过对候选文件元数据进行解析,就能够实现对目标目录下的文件情况的查询。
在本申请的一些实施例中,通过目录索引参数,从目录映射数据中查找目标目录对应的目录元数据之后,即在S102之后,该方法还可以包括:S113,如下:
S113、将目录索引参数和目录元数据,从目录映射数据中删除。
针对目录的处理中,当然也会包括删除目录。数据处理设备在得到目录索引参数和目录元数据之后,可以通过将目录索引参数和目录元数据从目录映射数据中删除,以清除目录索引参数和目录元数据之间的映射关系,使得在目录树中,不会再有目标目录。
本申请实施例中,数据处理设备可以通过从目录映射数据中删除目录索引参数和目录元数据,实现对目标目录的删除操作,从而后续数据处理设备不会再在目录映射数据中得到目录元数据。
在本申请的一些实施例中,接收针对目标文件的处理操作之前,即在S101之前,该方法还可以包括:S114-S117,如下:
S114、创建目标目录,并针对目标目录生成目录标识。
数据处理设备在接收针对目标文件的处理操作之前,还会先创建目标目录,并在完成对该目标目录的创建之后,为该目标目录分配唯一的目标标识。
S115、对目标目录进行编码,得到目录索引参数。
可以理解的是,S115的编码过程与S101中的编码过程类似,在此不再赘述。
S116、将目录标识和目标目录的创建时间,确定为目录元数据。
数据处理设备将目录标识和目标目录在创建完成时的时间戳,即目标目录的创建时间,打包成为目录元数据,以便于后续建立映射关系。
可以理解的是,生成目标索引参数和确定目录元数据的顺序,并不会给目录索引参数和目录元数据之间的映射关系造成影响,从而,在一些实施例中,数据处理设备还可以先执行S116,再执行S115,还可以同时执行S115和S116,本申请实施例在此不作限定。
S117、建立目录索引参数和目录元数据之间的映射关系,并将目录索引参数和目录元数据写入目录映射数据中。
数据处理设备在得到目录索引参数和目录元数据之后,就会针对目录索引参数和目录元数据建立映射关系,并将目录索引参数和目录元数据写入到目录映射数据中,以便后续能够利用目录索引参数从目录映射数据中查找到目录元数据。
本申请实施例中,数据处理设备在接收针对目标文件的处理操作之前,还可以先创建出目标目录,并利用目标目录构造出目录索引参数,利用目录标识和创建时间构造出目录元数据,建立目录索引参数和目录元数据之间的映射关系,从而使得后续能够利用目标索引参数从目录映射数据中查找出目录元数据,以便于确定目标文件对应的目标元数据。
在本申请的一些实施例中,通过目录索引参数,从目录映射数据中查找出描述目标目录的属性的目录元数据之后,即在S102之后,该方法还可以包括:S118-S121,如下:
S118、获取替换目录,并对替换目录进行编码,得到目录索引前缀。
本申请实施例中,数据处理设备需要对目标目录下的目录,移动到另外一个目录下。此时,数据处理设备会获取替换目录,其中,替换目录是指目标目录下的目录所要移动到的目录,然后对替换目录进行编码,编码结果就是目录索引前缀。
S119、从目录映射数据中,查找出以目录索引参数作为前缀的匹配目录索引参数,以及匹配目录索引参数对应匹配目录元数据。
数据处理设备将目录索引参数作为前缀,从目录映射数据中查找具有相同前缀的索引参数,所查找出的索引参数,就是匹配目录参数。
可以理解的是,由于在目录映射数据中,只有目录所对应的索引参数,才是对目录编码得到的,而文件所对应的索引参数,则是由目录标识和文件名称生成的,并不会具有针对目录的编码结果,因此,数据处理设备将目录索引参数作为前缀,所查找到的一定是目录的索引参数。
接着,数据处理设备会将匹配目录索引参数作为查找条件,继续从目录映射数据中,查找出匹配目录索引参数所对应的匹配目录元数据,从而得到目标目录下的目录的元数据。
S120、将匹配索引参数的前缀替换为目录索引前缀,得到替换后的索引参数,并建立替换后的索引参数与匹配目录元数据之间的映射关系。
数据处理设备在得到匹配目录索引参数之后,会将匹配目录索引参数中的前缀,即目录索引参数,替换为移动索引参数,得到替换后的索引参数。之后,数据处理设备会建立替换后的索引参数与匹配目录元数据之间的映射关系,即建立目标目录与原本处于目标目录下的各个目录的联系。
S121、将替换后的索引参数写入目录映射数据,并从目录映射数据中删除匹配目录索引参数。
最后,数据处理设备会将替换后的索引参数写入到目录映射数据中,并删除匹配目录索引参数,如此,只有利用带有移动索引参数前缀的替换后的目录索引参数,才能够查找出匹配目录元数据,从而实现将目标目录下的目录,移动到目标目录下,以实现对目录的移动操作。
本申请实施例中,数据处理设备能够对获取到的目标目录进行编码,得到移动索引参数,并查找出以目录索引参数作为前缀的匹配目录索引参数,从而得到目标目录的目录所对应的匹配目录元数据,利用移动目录索引参数替换匹配目录索引参数中的目录索引参数,并建立映射关系,删除原有的映射关系,从而实现将处于目标目下的目录,移动到目标目录中,即实现了针对目录的移动操作。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在对分布式文件系统的名字空间中的目录树中的目录和文件进行处理的场景下实现的,包括对目录和文件的增删改查等操作。
图11是本申请实施例提供的对目录树中的目录和文件进行处理的系统框架示意图,参见图11,部署于服务器(数据处理设备)的处理系统框架包括三个模块,分别为目录树操作模块11-1、目录树编码模块11-2和LSM-Tree存储引擎11-3。
其中,目录树操作模块11-1负责封装对外界提供的应用程序接口,包括针对目录的创建、删除、更新、移动、读取列表等接口,针对文件的创建、删除、移动、重命名、读取元数据、更新元数据等接口。
目录树操作模块11-2负责将目录名、文件名、目录和文件的元数据按照特定格式编码为键/值(映射关系)的形式,并调用LSM-Tree存储引擎11-3的接口写入键/值数据(写入目录映射数据中)。
LSM-Tree存储引擎11-3负责持久化存储键/值数据,并提供读取的功能。在本申请中,LSM-Tree存储引擎11-3采用高性能存储引擎(rocksdb),rocksd b支持数据持久化到可靠的存储介质,例如ssd/机械硬盘等。
下面,对各个模块进行具体的介绍。
分布式文件系统中,名字空间管理的目录树包括2类数据,即目录和文件。目录树编码模块11-2将这2类数据以键/值的形式写入,其中,键是按照特定规则编码的字符串,值是序列化后的目录元数据或文件元数据。
目录树的路径都是可见字符构成的字符串,以“/”作为开头,例如,“/dat a/a.file”代表目录“data”下的文件“a.file”。目录的键(目录索引参数)由定值前缀和编码值组成,定值前缀长度为1字节,定值设置为0,编码值为目录的全路径(完整的目标目录)。进一步的,参见表3,表3提供了目录的键的构成的示意。
表3
目录的元数据以协议数据交换格式工具(protobuf)格式序列化后作为值(目录元数据)写入。目录的元数据中包括多个元数据相关字段,其中目录id(目录标识)最为关键,目录id是为每个目录分配的,确保全局分配为1(目录标识用于唯一标志目标目录),从1开始分配。进一步的,参见表4,表4提供了目录的元数据,即目录的值的构成的示意。
表4
其中,说明部分表明了目录的值中的每个字段的构成情况。
文件以目录id+文件名为键(利用目录标识和目标文件的文件名称,生成文件索引参数)。文件的键(文件索引参数)用目录id(目录标识)作为前缀,长度为8字节,用于区分不同目录下的文件,文件名(文件名称)用于区分同一个目录下不同的文件。进一步的,表5提供了文件的键的构成的示意。
表5
文件的值(目标元数据)没有直接存储文件的block(数据块)元数据(数据块元数据),而是存储block的数量(数据块数量)、文件id(文件标识)等信息。这些信息利用protobuf格式序列化后存储。进一步的,表6提供的文件的值的构成示意。
表6
可见,block数量用于记录文件中有多少block。
文件元数据以“文件id+block序号”为键(利用文件标识和数据块的块标识,拼接成元数据索引参数),文件元数据的键用文件id作为前缀,长度为8字节,同一文件下的不同block用block序号(块标识)区。在同一个文件id下,block序号的分配是保证递增且唯一的。进一步的,表7提供了文件元数据的键的构成示意图。
表7
文件元数据(数据块元数据)则是用protobuf格式序列化后存储。
目录树操作模块11-1需要按照上述格式构造键,并查询或修改LSM-Tree存储引擎内的数据。以图1示出的目录树为例,键值的存储结构如表8所示。
表8
可见,针对图1所示出的目录树,创建文件时,以文件所在的目录的路径为键,来存储目录元数据,并分配唯一的目录id,再以“目录id+文件名”为键记录文件元数据。在查找文件,先获取文件所在目录的目录id,再根据目录id和文件名获取文件的元数据,从而查找深度始终为2,重命名目录时,只修改目录名称,目录id保持不变,从而不涉及到对文件元数据的键的改变。
下面,分别描述对目录树的操作接口流程。
目录创建/删除:如果是创建,需要针对创建的目录分配一个全局唯一的目录id,接着按照表3构造对应的目录的键,按照表4构造目录的值(建立目录索引参数和目录元数据之间的映射关系),然后调用LSM-Tree写入/删除键值对(将目录索引参数和目录元数据写入目录映射数据中)。
目录移动:根据目录路径,按照表3构造目录的键的前缀;从LSM-Tree引擎遍历读取拥有相同键的前缀(以目录索引参数作为前缀的匹配目录索引参数)的键值对;针对每个键值对,从键解析出目录完整路径,将值临时保存在内存中,按照目录创建流程写入新目录(替换目录),按照目录删除流程删除旧目录。
读取目录下文件列表:按照表3构造出目录的键,从LSM-Tree引擎读出目录的值;解析目录的值,得到目录id;按照表5构造文件的键的前缀(文件查询前缀),从LSM-Tree引擎遍历具有同样目录id作为前缀的文件的键(候选文件元数据)所对应的文件的值的列表(候选文件元数据);解析文件的键值对的数据,得到对应的文件列表,包括文件名,block数量的信息(对候选文件元数据进行解析,得到处于目标目录下的各个文件的名称,以及各个文件的数据块数量)。
读取目录元数据:按照表3构建目录的键,从LSM-Tree引擎读出对应的目录的值(目录元数据);解析目录的值,得到目录id、目录创建等信息(从目录元数据中,读取出目标目录对应的属性信息)。
文件创建:根据文件的路径(路径信息),得到文件所在的目录路径信息(目标目录),按照表3构造目录的键;从LSM-Tree引擎读出目录的值(如果不存在,则按照目录创建流程创建目录);解析目录的值,得到目录id、目录创建时间等信息;根据目录id、文件名等,按照表5构造文件的键,按照表6构建文件的值(将目标文件的属性信息,确定为目标文件对应的目标元数据);调用L SM-Tree引擎写入文件的键/值数据。
文件删除:根据文件的路径,得到文件所在的目录路径信息;按照表3构造目录的键;从LSM-Tree引擎读出目录的值;解析目录的值,得到目录id、目录创建时间等信息;根据目录id、文件名,按照表5构造文件的键(文件索引参数);调用LSM-Tree引擎,得到文件的值,并删除文件的键/值数据(将目标元数据和文件索引参数从目录映射数据中删除)。
文件移动:根据文件的路径,得到文件所在的目录路径信息;按照表3构造目录的键;从LSM-Tree引擎读出目录的值,并临时保存在内存中;按照文件流程创建文件,用上一步保存在内存中的值作为文件的键对应的值;按文件删除流程删除原文件。
文件重命名:根据旧文件的路径,得到旧文件所在的目录路径信息;按照表3构造目录的键;从LSM-Tree引擎读出目录的值;解析目录的值,得到目录id、目录创建时间等信息;根据目录id、文件名,按表5构造文件的键;从LSM-Tree引擎读出文件的值,并临时保存在内存中;根据目录id、新文件名(重命名名称),按照表5构造文件的新键(重命名索引参数),以上一步临时保存的数据为文件的值;调用LSM-Tree引擎写入文件的新键和文件的值(将重命名索引参数写入目录映射数据),删除原有的文件的键(从目录映射数据中删除文件索引参数)。
文件元数据读取:根据旧文件的路径,得到旧文件所在的目录路径信息;按照表3构造目录的键;从LSM-Tree引擎读出目录的值;解析目录的值,得到目录id、目录创建时间等信息;根据目录id、文件名,按表5构造文件的键;从LSM-Tree引擎读出文件的值;解析文件的值,得到文件id、block数量等信息;根据文件id、block序号,按照表7构造元数据的键(元数据索引参数);从LSM-Tree引擎读出元数据的值;解析元数据的值,得到元数据(数据块元数据)。
文件元数据写入/更新:根据旧文件的路径,得到旧文件所在的目录路径信息;按照表3构造目录的键;从LSM-Tree引擎读出目录的值;解析目录的值,得到目录id、目录创建时间等信息;根据目录id、文件名,按表5构造文件的键;从LSM-Tree引擎读出文件的值;解析文件的值,得到文件id、block数量等信息;根据文件id、block序号,按照表7构造元数据的键;调动LSM-Tree引擎写入元数据的键/值数据,或者更新元数据的键/值数据(对数据块元数据进行更新,得到更新欧的数据块元数据)。
通过上述方式,服务器可以针对任何文件,通过两次查询就可以查找到,查找高效,并且文件索引参数中不包含关于目录名称,从而,在对目录进行重命名时,需要修改的索引参数的数量较少,修改效率高。综上,数据处理的整体效率就会得到提高。另外,在硬盘空间构建目录树,可以减少内存消耗,提高可存储的目录树节点的数量,并在设备重启时,可以降低目录树恢复的时长。
下面继续说明本申请实施例提供的数据处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器550的数据处理装置555中的软件模块可以包括:
操作接收模块5551,用于接收针对目标文件的处理操作;
信息编码模块5552,用于对所述目标文件所在的目标目录进行编码,得到目录索引参数;
数据查找模块5553,用于通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据;所述目录映射数据存储了所述目录索引参数和目录元数据的映射关系,以及文件索引参数和所述目标文件对应的目标元数据的映射关系;依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据;
文件处理模块5554,用于基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,所述处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
在本申请的一些实施例中,所述数据查找模块5553,还用于从所述目录元数据中解析出所述目标目录对应的目录标识;利用所述目录标识和所述目标文件的所述文件名称,生成所述文件索引参数;依据所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据。
在本申请的一些实施例中,所述处理操作包括:所述移动操作;所述文件处理模块5554,还用于对所述移动操作对应的移动目录进行编码,得到移动索引参数;所述移动目录表征将所述目标文件移动到的目录;依据所述移动索引参数,从所述目录映射数据中筛选出所述移动目录对应的移动元数据;从所述移动元数据中,解析出所述移动目录的移动标识,并利用所述移动标识和所述文件名称,拼接出最新索引参数;建立所述最新索引参数与所述目标元数据之间的映射关系,并将所述最新索引参数写入所述目录映射数据;从所述目录映射数据中删除所述文件索引参数,实现所述对所述目标文件的所述移动操作。
在本申请的一些实施例中,所述处理操作包括:所述重命名操作;所述文件处理模块5554,还用于获取所述重命名操作对应的重命名名称;依据所述目录标识和所述重命名名称拼接出重命名索引参数;建立所述重命名索引参数与所述目标元数据之间的映射关系,并将所述重命名索引参数写入所述目录映射数据;从所述目录映射数据中删除所述文件索引参数,实现针对所述目标文件的所述重命名操作。
在本申请的一些实施例中,所述目录映射数据中还包括:元数据索引参数和数据块元数据之间的映射关系;所述处理操作包括:所述元数据读取操作;所述文件处理模块5554,还用于从所述目标元数据中解析出所述目标文件的文件标识;利用所述文件标识和所述元数据读取操作对应的数据块的块标识,拼接成元数据索引参数;其中,所述数据块是对所述目标文件进行切分得到的,所述块标识用于唯一标志所述数据块;依据所述元数据索引参数,从所述目录映射数据中查找出所述数据块对应的数据块元数据;对所述数据块元数据进行解析,得到所述目标文件的文件元数据,实现针对所述目标文件的所述元数据读取操作。
在本申请的一些实施例中,所述文件处理模块5554,还用于对所述数据块元数据进行更新,得到更新后的数据块元数据;建立所述元数据查找参数与所述更新后的数据块元数据之间的映射关系,并将所述更新后的数据块元数据写入所述目录映射数据;从所述目录映射数据中删除所述数据块元数据。
在本申请的一些实施例中,所述处理操作包括:所述删除操作;所述文件处理模块5554,还用于将所述目标元数据和所述文件索引参数从所述目录映射数据中删除,实现针对所述目标文件的所述删除操作。
在本申请的一些实施例中,数据处理装置555还包括:文件创建模块5555;
所述文件创建模块5555,用于在所述目标目录中,创建所述目标文件;利用针对所述目标目录分配的唯一的所述目录标识和所述目标文件的所述文件名称,生成所述目标文件对应的所述文件索引参数;将所述目标文件的属性信息,确定为所述目标文件对应的所述目标元数据;其中,所述目标文件的属性信息中至少包括:针对所述目标文件所分配唯一的文件标识和所述目标文件中的数据块数量中的一个或多个;建立所述文件索引参数和所述目标元数据之间的映射关系,并将所述文件索引参数和所述目标元数据写入所述目录映射数据。
在本申请的一些实施例中,数据处理装置555还包括:目录处理模块5556;
所述目录处理模块5556,用于从所述目录元数据中,读取出所述目标目录对应的属性信息,所述目标目录对应的属性信息至少包括:目录标识和目录创建时间中的一个或多个,所述目录标识用于唯一标志所述目标目录。
在本申请的一些实施例中,所述目录处理模块5556,还用于依据所述目标目录对应的属性信息中的所述目录标识,构造出文件查询前缀;从所述目录映射数据中,查找出具有所述文件查询前缀的候选索引参数,以及所述候选查找参数对应的候选文件元数据;对所述候选文件元数据进行解析,得到处于所述目标目录下的各个文件的名称,以及所述各个文件的数据块数量。
在本申请的一些实施例中,所述目录处理模块5556,还用于创建所述目标目录,并针对所述目标目录生成所述目录标识;对所述目标目录进行编码,得到所述目录索引参数;将所述目录标识和所述目标目录的创建时间,确定为所述目录元数据;建立所述目录索引参数和所述目录元数据之间的映射关系,并将所述目录索引参数和所述目录元数据写入所述目录映射数据中。
在本申请的一些实施例中,所述目录处理模块5556,还用于获取替换目录,并对所述替换目录进行编码,得到目录索引前缀;其中,所述替换目录是指将所述目标目录下的目录所要移动到的目录;从所述目录映射数据中,查找出以所述目录索引参数作为前缀的匹配目录索引参数,以及所述匹配目录索引参数对应匹配目录元数据;将所述匹配目录索引参数的前缀替换为所述目录索引前缀,得到替换后的索引参数,并建立所述替换后的索引参数与所述匹配目录元数据之间的映射关系;将所述替换后的索引参数写入所述目录映射数据,并从所述目录映射数据中删除所述匹配目录索引参数。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行数据处理指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据处理方法,例如,如图4示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行数据处理指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行数据处理指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行数据处理指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个数据处理设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个数据处理设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
接收针对目标文件的处理操作,并对所述目标文件所在的目标目录进行编码,得到目录索引参数;
通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据;所述目录映射数据存储了所述目录索引参数和目录元数据的映射关系,以及文件索引参数和所述目标文件对应的目标元数据的映射关系;
依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据;
基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,所述处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
2.根据权利要求1所述的方法,其特征在于,所述依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据,包括:
从所述目录元数据中解析出所述目标目录对应的目录标识;
利用所述目录标识和所述目标文件的所述文件名称,生成所述文件索引参数;
依据所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据。
3.根据权利要求2所述的方法,其特征在于,所述处理操作包括:所述移动操作;所述基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,包括:
对所述移动操作对应的移动目录进行编码,得到移动索引参数;所述移动目录表征将所述目标文件移动到的目录;
依据所述移动索引参数,从所述目录映射数据中筛选出所述移动目录对应的移动元数据;
从所述移动元数据中,解析出所述移动目录的移动标识,并利用所述移动标识和所述文件名称,拼接出最新索引参数;
建立所述最新索引参数与所述目标元数据之间的映射关系,并将所述最新索引参数写入所述目录映射数据;
从所述目录映射数据中删除所述文件索引参数,实现所述对所述目标文件的所述移动操作。
4.根据权利要求2所述的方法,其特征在于,所述处理操作包括:所述重命名操作;所述基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,包括:
获取所述重命名操作对应的重命名名称;
依据所述目录标识和所述重命名名称拼接出重命名索引参数;
建立所述重命名索引参数与所述目标元数据之间的映射关系,并将所述重命名索引参数写入所述目录映射数据;
从所述目录映射数据中删除所述文件索引参数,实现针对所述目标文件的所述重命名操作。
5.根据权利要求2所述的方法,其特征在于,所述目录映射数据中还包括:元数据索引参数和数据块元数据之间的映射关系;所述处理操作包括:所述元数据读取操作;所述基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,包括:
从所述目标元数据中解析出所述目标文件的文件标识;
利用所述文件标识和所述元数据读取操作对应的数据块的块标识,拼接成元数据索引参数;其中,所述数据块是对所述目标文件进行切分得到的,所述块标识用于唯一标志所述数据块;
依据所述元数据索引参数,从所述目录映射数据中查找出所述数据块对应的数据块元数据;
对所述数据块元数据进行解析,得到所述目标文件的文件元数据,实现针对所述目标文件的所述元数据读取操作。
6.根据权利要求5所述的方法,其特征在于,所述依据所述元数据索引参数,从所述目录映射数据中查找出所述数据块对应的数据块元数据之后,所述方法还包括:
对所述数据块元数据进行更新,得到更新后的数据块元数据;
建立所述元数据查找参数与所述更新后的数据块元数据之间的映射关系,并将所述更新后的数据块元数据写入所述目录映射数据;
从所述目录映射数据中删除所述数据块元数据。
7.根据权利要求2所述的方法,其特征在于,所述处理操作包括:所述删除操作;所述基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,包括:
将所述目标元数据和所述文件索引参数从所述目录映射数据中删除,实现针对所述目标文件的所述删除操作。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述接收针对目标文件的处理操作之前,所述方法还包括:
在所述目标目录中,创建所述目标文件;
利用针对所述目标目录分配的唯一的所述目录标识和所述目标文件的所述文件名称,生成所述目标文件对应的所述文件索引参数;
将所述目标文件的属性信息,确定为所述目标文件对应的所述目标元数据;其中,所述目标文件的属性信息中至少包括:针对所述目标文件所分配唯一的文件标识和所述目标文件中的数据块数量中的一个或多个;
建立所述文件索引参数和所述目标元数据之间的映射关系,并将所述文件索引参数和所述目标元数据写入所述目录映射数据。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据之后,所述方法还包括:
从所述目录元数据中,读取出所述目标目录对应的属性信息,所述目标目录对应的属性信息至少包括:目录标识和目录创建时间中的一个或多个,所述目录标识用于唯一标志所述目标目录。
10.根据权利要求9所述的方法,其特征在于,所述从所述目录元数据中,读取出所述目标目录对应的属性信息之后,所述方法还包括:
依据所述目标目录对应的属性信息中的所述目录标识,构造出文件查询前缀;
从所述目录映射数据中,查找出具有所述文件查询前缀的候选索引参数,以及所述候选查找参数对应的候选文件元数据;
对所述候选文件元数据进行解析,得到处于所述目标目录下的各个文件的名称,以及所述各个文件的数据块数量。
11.根据权利要求9所述的方法,其特征在于,所述接收针对目标文件的处理操作之前,所述方法还包括:
创建所述目标目录,并针对所述目标目录生成所述目录标识;
对所述目标目录进行编码,得到所述目录索引参数;
将所述目录标识和所述目标目录的创建时间,确定为所述目录元数据;
建立所述目录索引参数和所述目录元数据之间的映射关系,并将所述目录索引参数和所述目录元数据写入所述目录映射数据中。
12.根据权利要求1至7、10或11任一项所述的方法,其特征在于,所述通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据之后,所述方法还包括:
获取替换目录,并对所述替换目录进行编码,得到目录索引前缀;其中,所述替换目录是指将所述目标目录下的目录所要移动到的目录;
从所述目录映射数据中,查找出以所述目录索引参数作为前缀的匹配目录索引参数,以及所述匹配目录索引参数对应匹配目录元数据;
将所述匹配目录索引参数的前缀替换为所述目录索引前缀,得到替换后的索引参数,并建立所述替换后的索引参数与所述匹配目录元数据之间的映射关系;
将所述替换后的索引参数写入所述目录映射数据,并从所述目录映射数据中删除所述匹配目录索引参数。
13.一种数据处理装置,其特征在于,包括:
操作接收模块,用于接收针对目标文件的处理操作;
信息编码模块,用于对所述目标文件所在的目标目录进行编码,得到目录索引参数;
数据查找模块,用于通过所述目录索引参数,从目录映射数据中查找出描述所述目标目录的属性的目录元数据;所述目录映射数据存储了所述目录索引参数和目录元数据的映射关系,以及文件索引参数和所述目标文件对应的目标元数据的映射关系;依据所述目录元数据和所述目标文件的文件名称构造出的所述文件索引参数,从所述目录映射数据中查找出描述所述目标文件的属性的所述目标元数据;
文件处理模块,用于基于对所述文件索引参数和所述目标元数据的操作,实现对所述目标文件的所述处理操作,所述处理操作至少包含移动操作、删除操作、重命名操作、元数据读取操作中的任意一个或多个。
14.一种数据处理设备,其特征在于,包括:
存储器,用于存储可执行数据处理指令;
处理器,用于执行所述存储器中存储的可执行数据处理指令时,实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行数据处理指令,用于被处理器执行时,实现权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110928107.2A CN115705313A (zh) | 2021-08-11 | 2021-08-11 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110928107.2A CN115705313A (zh) | 2021-08-11 | 2021-08-11 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705313A true CN115705313A (zh) | 2023-02-17 |
Family
ID=85181125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110928107.2A Pending CN115705313A (zh) | 2021-08-11 | 2021-08-11 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115705313A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610577A (zh) * | 2023-05-25 | 2023-08-18 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN117149709A (zh) * | 2023-10-30 | 2023-12-01 | 太平金融科技服务(上海)有限公司 | 影像文件的查询方法、装置、电子设备及存储介质 |
-
2021
- 2021-08-11 CN CN202110928107.2A patent/CN115705313A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610577A (zh) * | 2023-05-25 | 2023-08-18 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN116610577B (zh) * | 2023-05-25 | 2024-01-26 | 成都融见软件科技有限公司 | 一种覆盖率获取方法 |
CN117149709A (zh) * | 2023-10-30 | 2023-12-01 | 太平金融科技服务(上海)有限公司 | 影像文件的查询方法、装置、电子设备及存储介质 |
CN117149709B (zh) * | 2023-10-30 | 2024-02-02 | 太平金融科技服务(上海)有限公司 | 影像文件的查询方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10691639B1 (en) | Hybrid metadata and folder based file access | |
CN109684701B (zh) | Bim模型资源管理系统与bim模型创建方法 | |
US7523141B2 (en) | Synchronization operations involving entity identifiers | |
CN113010476A (zh) | 元数据查找方法、装置、设备及计算机可读存储介质 | |
KR20090088901A (ko) | 웹 문서의 압축을 향상시키는 방법, 시스템 및 컴퓨터 판독 가능한 저장 매체 | |
CN113434506B (zh) | 数据管理及检索方法、装置、计算机设备及可读存储介质 | |
CN113721862A (zh) | 数据处理方法及装置 | |
KR20160124744A (ko) | 인-메모리 데이터베이스를 호스팅하는 시스템 및 방법 | |
CN117271460A (zh) | 基于科研数字对象语用关系的科研数联网服务方法与系统 | |
JP2012531688A (ja) | メタデータに従ってファイルシステムのファイルにアクセスする方法、およびその方法を実装する装置 | |
CN114625696B (zh) | 文件恢复方法、装置、电子设备及存储介质 | |
CN104778192A (zh) | 表示可内容寻址存储系统的目录结构 | |
CN115705313A (zh) | 一种数据处理方法、装置、设备及计算机可读存储介质 | |
CN102520995A (zh) | 软件远程流式加载方法及系统 | |
KR101648047B1 (ko) | 호환 오픈소스 소프트웨어 추천 시스템 및 방법 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
CN113138792B (zh) | 一种Elasticsearch版本迁移方法、装置和存储介质 | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN113553458A (zh) | 图数据库中的数据导出方法及装置 | |
US8495025B2 (en) | Foldering by stable query | |
HK40081830A (zh) | 一種數據處理方法、裝置、設備及計算機可讀存儲介質 | |
CN111881220A (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN109947739B (zh) | 数据源管理方法及装置 | |
JP7293544B2 (ja) | 質問回答システムの更新処理方法及び装置 | |
CN116627928A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40081830 Country of ref document: HK |