CN103501339A - 元数据处理方法及元数据服务器 - Google Patents
元数据处理方法及元数据服务器 Download PDFInfo
- Publication number
- CN103501339A CN103501339A CN201310464137.8A CN201310464137A CN103501339A CN 103501339 A CN103501339 A CN 103501339A CN 201310464137 A CN201310464137 A CN 201310464137A CN 103501339 A CN103501339 A CN 103501339A
- Authority
- CN
- China
- Prior art keywords
- operation requests
- queue
- metadata
- request
- classification
- 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.)
- Granted
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种元数据处理方法及元数据服务器,该方法包括:将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列,判断目录的锁是否被授权,若锁被授权,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果,根据各返回结果,对至少一个操作请求对应的元数据进行处理。该过程中,元数据服务器对相同目录下的多个并发操作请求,如新建操作、删除操作、修改操作等,先获取该目录的锁,若锁被授权,则对多个客户端发送的操作请求进行目录级别的合并,从而提高对元数据的处理效率。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种元数据处理方法及元数据服务器。
背景技术
分布式文件***是一种基于客户机/服务器模式的文件***,该***包括客户端和元数据服务器,元数据和元数据信息都存放在元数据服务器。客户端需要操作文件时,必须先从元数据服务器上查询该文件的元数据信息,根据元数据信息访问元数据服务器并进行操作,操作完后将操作后的元数据信息发送给元数据服务器。目前,对某个元数据的并发修改操作是串行执行的,例如,当一个客户端的写操作A获得了某个元数据X的写锁时,此时若有多个客户端的写操作{Bi}向元数据服务器发送该元数据X的写锁请求,那么该些写操作{Bi}由于不会被授权而处于等待状态。对于客户端来说,长时间处于等待状态,很大程度上影响了数据访问效率。
现有技术中,为提高修改元数据的效率,元数据服务器将同时到达的多个修改操作缓存至循环操作队列,对队列中最后一个操作对应的修改数据进行存储写盘,从而在一定程度上提高了数据访问效率。
然而,上述技术方案仅是对同一个元数据的覆盖型属性并发修改操作,覆盖型属性例如最后一次修改文件或目录的时间(mtime)、最后一次访问文件或目录的时间(atime)等。但是,元数据的处理除了对同一个元数据的覆盖型属性的并发修改操作外,还包括对同一个元数据的扩展属性的修改,例如访问控制列表(Access Control List,ACL)条目的增加、删除等,以及在同一个目录下并发新建多个元数据的操作、对同一个目录下的多个元数据的多并发修改操作等,此时,只能采用串行执行的方式,导致响应时间长,单位时间内完成的操作请求少,并发度不高,处理效率低。
发明内容
本发明实施例提供一种元数据处理方法及元数据服务器,以提高对元数据的处理效率。
第一个方面,本发明实施例提供一种元数据处理方法,包括:
将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;
判断所述目录的锁是否被授权;
若所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理。
在第一个方面的第一种可能的实现方式中,所述若所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果,包括:
对于每一个操作请求,判断所述操作请求的类别,所述类别包括:第一类别、第二类别和第三类别,其中,所述第一类别包括对元数据的读操作,所述第二类别包括对元数据的新建操作、修改操作和删除操作,所述第三类别包括对元数据的移动操作、新建链接操作和删除链接操作;
根据所述操作请求所属的类别,返回所述操作请求对应的返回结果。
结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第一类别,则返回所述操作请求为读请求的返回结果。
结合第一个方面的第一种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第二类别,则判断所述操作请求对元数据的操作是否合法;
若不合法,则返回所述操作请求为错误请求的返回结果;
否则,若合法,则判断合并队列中是否存在所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若所述合并队列中存在所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第三类别的操作请求,则将所述第二类别的操作请求加入到所述合并队列中,将所述第二类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作请求为可合并请求的返回结果。
结合第一个方面的第一种可能的实现方式,在第一个方面的第四种可能的实现方式中,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第三类别,则判断所述操作请求对元数据的操作是否合法;
若不合法,则返回所述操作请求为错误请求的返回结果;
否则,若合法,则判断合并队列中是否存在所述第二类别的操作请求,或者,所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若所述合并队列中存在所述第二类别的操作请求,或者,所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第二类别的操作请求,并且,不存在所述第三类别的操作请求,则将所述第三类别的操作请求加入到所述合并队列中,将所述第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作结果为可合并请求的返回结果。
结合第一个方面的第二种可能的实现方式,在第一个方面的第五种可能的实现方式中,所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求移出所述请求队列;
响应所述操作请求。
结合第一个方面的第三种或第四种可能的实现方式,在第一个方面的第六种可能的实现方式中,若不合法,返回所述操作请求为错误请求的返回结果,则所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求移出所述请求队列;
响应所述操作请求。
结合第一个方面的第三种或第四种可能的实现方式,在第一个方面的第七种可能的实现方式中,若返回所述操作请求为互斥请求的返回结果,则所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求保存在所述请求队列中。
结合第一个方面的第三种、第四种或第七种可能的实现方式,在第一个方面的第八种可能的实现方式中,所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述缓冲数据队列中的元数据发送给存储节点,以使所述存储节点对所述元数据进行写入以得到事务结果;
根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应。
结合第一个方面的第八种可能的实现方式,在第一个方面的第九种可能的实现方式中,所述根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应之后,还包括:
判断所述请求队列中是否还存在操作请求;
若存在,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
否则,若不存在,则释放所述锁。
第二个方面,本发明实施例提供一种元数据服务器,包括:
请求队列模块,用于将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;
目录锁模块,用于判断所述目录的锁是否被授权;
合并判决模块,用于若所述目录锁模块判断出所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
请求处理模块,用于根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理。
在第二个方面的第一种可能的实现方式中,所述合并判决模块,对于每一个操作请求,判断所述操作请求的类别,所述类别包括:第一类别、第二类别和第三类别,其中,所述第一类别包括对元数据的读操作,所述第二类别包括对元数据的新建操作、修改操作和删除操作,所述第三类别包括对元数据的移动操作、新建链接操作和删除链接操作,根据所述操作请求所属的类别,返回所述操作请求对应的返回结果。
结合第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述合并判决模块,用于若所述操作请求属于所述第一类别,则返回所述操作请求为读请求的返回结果。
结合第二个方面的第一种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述合并判决模块,用于若所述操作请求属于所述第二类别,则判断所述操作请求对元数据的操作是否合法,若判断出所述操作请求对元数据的操作不合法,则返回所述操作请求为错误请求的返回结果;
否则,若判断出所述操作请求对元数据的操作合法,则判断合并队列中是否存在所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求,若判断出所述合并队列中存在所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若判断出所述合并队列中不存在所述第三类别的操作请求,则所述请求处理模块用于将所述第二类别的操作请求加入到所述合并队列中,将所述第二类别的操作请求操作的元数据加入到缓冲数据队列中,所述合并判决模块用于返回所述操作请求为可合并请求的返回结果。
结合第二个方面的第一种可能的实现方式,在第二个方面的第四种可能的实现方式中,所述合并判决模块,用于若所述操作请求属于所述第三类别,则判断所述操作请求对元数据的操作是否合法,若判断出所述操作请求对元数据的操作不合法,则返回所述操作请求为错误请求的返回结果;
否则,若判断出所述操作请求对元数据的操作合法,则判断合并队列中是否存在所述第二类别的操作请求,或者,所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若判断出所述合并队列中存在所述第二类别的操作请求,或者,所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第二类别的操作请求,并且,不存在所述第三类别的操作请求,则将所述第三类别的操作请求加入到所述合并队列中,将所述第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作结果为可合并请求的返回结果。
结合第二个方面的第二种可能的实现方式,在第二个方面的第五种可能的实现方式中,所述请求处理模块,用于将所述操作请求移出所述请求队列,并响应所述操作请求。
结合第二个方面的第三种或第四种可能的实现方式,在第二个方面的第六种可能的实现方式中,所述请求处理模块,用于将所述操作请求移出所述请求队列,并响应所述操作请求。
结合第二个方面的第三种或第四种可能的实现方式,在第二个方面的第七种可能的实现方式中,所述请求处理模块,用于将所述操作请求保存在所述请求队列中。
结合第二个方面的第三种、第四种或第七种可能的实现方式,在第二个方面的第八种可能的实现方式中,所述请求处理模块,用于将所述缓冲数据队列中的元数据发送给存储节点,以使所述存储节点对所述元数据进行写入以得到事务结果;
所述元数据服务器,还包括发送模块,用于根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应。
结合第二个方面的第八种可能的实现方式,在第二个方面的第九种可能的实现方式中,所述目录锁模块,还用于判断所述请求队列中是否还存在操作请求;
所述合并判决模块,还用于若所述目录锁模块判断出所述请求队列中还存在操作请求,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
所述请求处理模块,还用于若所述目录锁模块判断出所述请求队列中不存在操作请求,则释放所述锁。
本发明实施例提供的元数据处理方法及元数据服务器,元数据服务器对相同目录下的多个并发操作请求,如新建操作、删除操作、修改操作等,先获取该目录的锁,若锁被授权,则对多个客户端发送的操作请求进行目录级别的合并,从而提高对元数据的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明元数据处理方法实施例一的流程图;
图2A为本发明元数据处理方法中MDS处理主过程一的示意图;
图2B为本发明元数据处理方法中子过程二的示意图;
图2C为本发明元数据处理方法中子过程三的示意图;
图3为本发明元数据服务器实施例一的结构示意图;
图4为本发明元数据服务器实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明元数据处理方法实施例一的流程图。本实施例的执行主体为元数据服务器。具体的,本实施例包括如下步骤:
101、将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列。
分布式文件***包括多个元数据服务器(Metadata Server,,MDS),所有的元数据按照其归属目录的元数据标识,分配给指定的元数据服务器,以确保对该目录下的元数据,例如子目录项(包括目录及文件等)的操作均是由该MDS来处理,便于目录级的元数据操作的合并。本步骤中,多个客户端(CLIENT)发送操作请求,案子操作请求所操作的元数据归属目录的元数据标识,将对同一目录的至少一个操作请求缓存至请求队列。
例如,目录为/mountfs/2013,其元数据标识为dirFID1,该目录下已有文件包括:
/mountfs/2013/file001,目录file001的元数据标识为FID1;
/mountfs/2013/file002,目录file002的元数据标识为FID2;
/mountfs/2013/file003,目录file003的元数据标识为FID3;
/mountfs/2013/file004,目录file004的元数据标识为FID4。
上述已有的文件按照元数据标识可以表示为{dirFID已有元数据}。
对属于/mountfs/2013的操作请求,均由元数据标识为dirFID1的目录对应的元数据服务器进行处理,即多个客户端并发的操作请求,都到达该元数据服务器的请求队列。例如:
CLIENT1.create(dirFID,newfile005),表示在/mountfs/2013目录下新建文件newfile005;
CLIENT2.create(dirFID,newfile006),表示在/mountfs/2013目录下新建文件newfile006;
CLIENT3.unlink(dirFID,newfile001),表示在/mountfs/2013目录下删除文件file001;
CLIENT4.unlink(dirFID,newfile002),表示在/mountfs/2013目录下删除文件file002;
CLIENT5.setattr(FID3,file003,Add ACL),表示对/mountfs/2013/file003,增加ACL;
CLIENT6.setattr(FID3,file004,Remove ACL),表示对/mountfs/2013/file004,删除ACL。
102、判断目录的锁是否被授权。
分布式文件***中,引入了锁的概念。如果客户端要操作某一元数据,例如,某个目录或子目录等,需先申请到该元数据的锁,从而使得多个客户端操作元数据时就可以防止数据的修改和读取的不一致性。本步骤中,目录对应的元数据服务器判断该目录的锁是否被授权,根据锁授权的结果进行后续处理。若该目录的锁未被授权,不对操作请求对应的元数据进行处理;否则,若该目录对应的锁被授权,则执行步骤103。其中,元数据服务器如何判断目录的锁是否被授权,可参见现有技术,此处不再赘述。
需要说明档是,上述101和102的执行并没有严格的先后顺序。
103、若锁被授权,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果。
若元数据服务器判断出目录的锁已被授权,则遍历请求队列中的各个操作请求,根据预设的规则等返回每一个操作请求的返回结果,该返回结果指示元数据服务器对操作请求的处理方式,例如,将操作请求移出请求队列、继续保存在请求队列、对操作请求进行响应等。
104、根据各返回结果,对至少一个操作请求对应的元数据进行处理。
本步骤中,元数据服务器根据各操作请求对应的返回结果,对各操作请求对应的元数据进行处理。例如,若返回结果为将操作请求移出请求队列,则若操作请求为读请求,则对发送读请求的客户端进行响应,若操作请求为错误请求,则向发送该操作请求的客户端响应失败,继续遍历请求队列;若返回结果是可合并,则将操作请求添加到合并队列中,将合并队列中的操作请求对应的元数据加入到缓冲数据队列中,使得遍历完请求队列后,将缓冲数据队列中经合并的元数据一次性提交给存储节点写盘。
本发明实施例提供的元数据处理方法,元数据服务器对相同目录下的多个并发操作请求,如新建操作、删除操作、修改操作等,先获取该目录的锁,若锁被授权,则对多个客户端发送的操作请求进行目录级别的合并,从而提高对元数据的处理效率。
图2A为本发明元数据处理方法中MDS处理主过程一的示意图,以下为描述清楚起见,将该过程称之为【主过程1-MDS处理主过程】。本实施例的执行主体为元数据服务器。具体的,本实施例包括如下步骤:
201、元数据服务器将至少一个操作请求缓存至请求队列。
对于某一个目录,例如dirFID,其指定的元数据服务器接收到多个客户端对该目录的操作请求后,将操作请求缓存至该目录的请求队列,例如{dirFID请求队列},后续若继续接收到对目录dirFID的操作请求,则将该些操作请求继续缓存至{dirFID请求队列}。
202、元数据服务器获取目录的锁,并判断锁是否被授权。
与目录对应的元数据服务器判断目录的锁是否被授权。若锁未被授权,则执行203;否则,若锁被授权,则执行204。
203、等待处理。
若元数据服务器判断出锁未被授权,则等待处理。
204、执行【子过程2-请求合并子过程】。
若元数据服务器判断出锁被授权,执行【子过程2-请求合并子过程】。
本步骤中,MDS遍历{dirFID请求队列}中的每个操作请求,对每个操作请求按照【子过程2-请求合并子过程】进行处理,返回各操作请求的返回结果。其中,【子过程2-请求合并子过程】可参见图2B。
205、根据返回结果,对操作请求对应的元数据进行处理。
具体的,本步骤包括如下可选子步骤(图中未示出):
2051、读请求的返回结果。
若返回结果为读请求(REQ_IS_READ),则将该返回结果对应的操作请求移出{dirFID请求队列},若元数据服务器的缓存中能够命中该操作请求,则直接对发起该操作请求的客户端进行响应;否则,若未命中,则到存储节点读取该操作请求后响应客户端,继续遍历{dirFID请求队列}。
2052、错误请求的返回结果。
若返回结果为错误请求(REQ_IS_ERROR),则向该返回结果对应的操作请求的发起客户端响应错误,继续遍历{dirFID请求队列}。
2053、可合并的返回结果。
若返回结果为可合并(REQ_IS_MERGED),则将该返回结果对应的操作请求加入到合并队列中,例如{dirFID合并队列},并将该操作请求所操作的元数据加入到缓冲数据队列中,例如{dirFID缓冲数据队列},继续遍历{dirFID请求队列}。其中操作请求所操作的元数据例如为新增元数据、删除原数据、修改元数据等。
2054、互斥的返回结果。
若返回结果为互斥(REQ_IS_MUTEXED),则将该返回结果对应的操作请求保存在{dirFID请求队列}中,退出循环,执行步骤205。
2055、遍历完毕。
元数据服务器判断是否遍历完毕{dirFID请求队列},若未遍历完毕,则继续循环;否则,若遍历完毕,则退出循环,执行步骤205。
206、将缓冲数据队列中的元数据发送给存储节点。
元数据服务器一次性的将缓冲数据队列中的数据发送给存储节点,以使存储节点通过事务机制保证多个元数据写入的原子性,等待事务结果。
207、向合并队列中的操作请求对应的客户端发送操作响应。
元数据服务器等待到事务结果后,对{dirFID合并队列}中的所有操作请求,根据事务结果进行响应。例如,若事务成功,则发送成功响应;否则,若是否失败,则发送失败响应。对{dirFID合并队列}中的所有操作请求发起的客户端响应完毕后,合并操作请求结束。
208、判断请求队列中是否还存在操作请求。
元数据服务器继续检查{dirFID请求队列},若{dirFID请求队列}中还有操作请求在等待,则返回204;否则,执行209.
209、释放锁。
若{dirFID请求队列}中没有等待的操作请求,则释放锁。
上述图2A是从【主过程1-MDS处理主过程】的角度对本发明进行详细阐述,下面,对步骤203中的【子过程2-请求合并子过程】进行详细说明。
本发明实施例中,对元数据的操作请求可分为以下三类,第一类别:对元数据的读操作;第二类别:对元数据的新建操作、修改操作和删除操作;第三类别:对元数据的移动操作、新建链接操作和删除其中,第一类别的操作请求与第二类别的操作请求互斥,即遍历{dirFID请求队列}的过程中,对于第一类别的操作请求,若{dirFID合并队列}中已存在第二类别的操作请求,则不把该当前正在遍历的操作请求加入到{dirFID合并队列},而是返回互斥请求(REQ_IS_MERGED)的返回结果;同理,若当前遍历的操作请求属于第二类别,且{dirFID合并队列}中已存在第一类别或第二类别的操作请求时,也不把该当前正在遍历的第二类别的操作请求加入到{dirFID合并队列},而是返回互斥请求的返回结果。具体的,可参见表1,表1为本发明操作请求分类表。
表1
可选的,本发明实施例中,对于第一类别中的操作请求,无需合并;对于第一类别的各操作请求,尝试合并;对于第三类别的操作请求,由于其可能涉及至少两个目录的操作,因此不进行合并。具体的,可参见图2B,图2B为本发明元数据处理方法中子过程二的示意图,即【子过程2-请求合并子过程】的示意图。请参照图2B,本实施例包括如下步骤:
301、针对每一操作请求,返回对应的返回结果。
具体的,本步骤包括如下可选子步骤:
3011、对于属于第一类别的操作请求返回对应的返回结果。
在遍历{dirFID请求队列}的过程中,对于属于第一类别的操作请求,返回结果为读请求(REQ_IS_READ)。
3012、对于属于第二类别的操作请求返回对应的返回结果。
在遍历{dirFID请求队列}的过程中,对于属于第二类别的操作请求,则执行【子过程3-请求合法性判断子过程】。
在遍历{dirFID请求队列}的过程中,对于属于第二类别的操作请求,元数据服务器调用【子过程3-请求合法性判断子过程】判断操作请求的合法性,根据合法与否,返回不同的返回结果,其中,【子过程3-请求合法性判断子过程】可参见图2C中对属于第二类别的操作请求的合法性判断过程。
具体的,若不合法,则返回操作请求为错误请求(REQ_IS_ERROR)的返回结果;若合法,则判断{dirFID合并队列}中是否存在属于第三类别的操作请求。若{dirFID合并队列}已有属于第三类别的操作请求,由于第一类别与第二类别的操作请求互斥,则返回操作请求为互斥请求(REQ_IS_MUTEXED)的返回结果;否则,若{dirFID合并队列}不存在属于第三类别的操作请求,则将该正在遍历的属于第二类别的操作请求加入到{dirFID合并队列}中,将该操作请求对应的元数据加入到{dirFID缓冲数据队列}中,并返回操作结果为可合并请求(REQ_IS_MERGED)的返回结果。
例如,若一开始遍历{dirFID请求队列}时,第一个被遍历的操作请求属于第二类别,此时{dirFID合并队列}和{dirFID缓冲数据队列}均为空,即{dirFID合并队列}中不存在属于第二类别的操作请求,此时,将当前的操作请求加入到{dirFID合并队列}中,将其操作的元数据加入到{dirFID缓冲数据队列}中,并返回操作请求为可合并请求(REQ_IS_MERGED)的返回结果,继续遍历。若后续遍历到的操作请求属于第三类别,则返回操作请求为互斥请求(REQ_IS_MERGED)的返回结果;否则,若遍历到的操作请求属于第二类别,则继续将操作请求加入到{dirFID合并队列}中,并继续后续过程。
3013、对于属于第三类别的操作请求返回对应的返回结果。
在遍历{dirFID请求队列}的过程中,对于属于第三类别的操作请求,则执行【子过程3-请求合法性判断子过程】。
在遍历{dirFID请求队列}的过程中,对于属于第三类别的操作请求,元数据服务器调用【子过程3-请求合法性判断子过程】判断操作请求的合法性,根据合法与否,返回不同的返回结果,其中,【子过程3-请求合法性判断子过程】可参见图2C中对属于第三类别的操作请求的合法性判断过程。
具体的,若不合法,则返回操作请求为错误请求(REQ_IS_ERROR)的返回结果;若合法,则判断{dirFID合并队列}中是否存在属于第二类别或第三类别的操作请求。若{dirFID合并队列}中存在属于第二类别或第三类别的操作请求,则返回操作请求为互斥请求(REQ_IS_MUTEXED)的返回结果否则,若{dirFID合并队列}中不存在属于第二类别或第三类别的操作请求,则将当前的操作请求加入到{dirFID合并队列}中,将其操作的元数据加入到{dirFID缓冲数据队列}中,并返回操作请求为可合并请求(REQ_IS_MERGED)的返回结果。
例如,若一开始遍历{dirFID请求队列}时,第一个被遍历的操作请求属于第三类别,此时{dirFID合并队列}和{dirFID缓冲数据队列}均为空,即{dirFID合并队列}中不存在属于第二类别或第三类别的操作请求。此时,将当前的操作请求加入到{dirFID合并队列}中,将其操作的元数据加入到{dirFID缓冲数据队列}中,并返回操作请求为可合并请求(REQ_IS_MERGED)的返回结果,继续遍历。若后续遍历到的操作请求属于第二类别或第三类别,则返回操作请求为互斥请求(REQ_IS_MUTEXED)的返回结果。
上述图2A是从【主过程1-MDS处理主过程】、图2B是从【子过程2-请求合并子过程】的角度对本发明进行详细阐述,下面,对步骤3012和3013中的【子过程3-请求合法性判断子过程】进行详细说明。
具体的,可参见图2C,图2C为本发明元数据处理方法中子过程三的示意图,即【子过程3-请求合法性判断子过程】的示意图。请参照图2C,本实施例包括如下步骤:
401、对属于第二类别的操作请求的合法性判断。
可选的,本步骤可包括:
(1)对于setattr请求,返回合法;
(2)对于create/mkdir/symlink/mknod等操作请求,将该些操作请求对应的元数据与目录下已有的元数据,例如{dirFID已有元数据}以及{dirFID缓冲数据队列}中的目录项名称列表进行匹配,根据是否重名,决定合法与否。若没有重名,则返回合法;否则,若重名,则返回不合法。例如,/mountfs/2013/file001,表示目录/mountfs/2013的{dirFID已有元数据}的目录项名称列表中存在file001,此时,若CLIENT1.create(dirFID,newfile001),表示在/mountfs/2013目录下新建文件newfile001,此时由于重名,返回不合法。
(3)对于unlink请求,将该操作请求对应删除的目录项名称与{dirFID已有元数据}中的目录项名称列表进行匹配,判断被删除的名称是否存在。
若存在,则返回合法;否则,若不存在,则返回不合法。
(4)对rmdir操作请求,将操作请求对应的删除目录项与{dirFID已有元数据}中的目录项名称列表进行匹配,判断被删除的名称是否存在、且是否为空目录。若存在,且为空目录,则返回合法;否则,若不存在,或不为空目录,则返回不合法。
402、对属于第三类别的操作请求的合法性判断。
可选的,本步骤可包括:
(1)对移动操作请求,如rename请求,将该操作请求对应的更名的目录项与{dirFID已有元数据}中的目录项名称列表进行匹配,判断原始的,即old name是否存在,若存在,则返回合法;否则,若不存在,则返回不合法。
(2)对link请求,将该操作请求对应的新建的目录项name与{dirFID已有元数据}中的目录项名称列表进行匹配,判断新建的目录项是否存在,若存在,则返回不合法;否则,若存在,则返回合法。
图3为本发明元数据服务器实施例一的结构示意图。本实施例提供的元数据服务器,其可实现本发明任意实施例提供的应用于元数据服务器的方法的各个步骤。具体的,本实施例提供的元数据服务器100具体包括:
请求队列模块11,用于将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;
目录锁模块12,用于判断目录的锁是否被授权;
合并判决模块13,用于若目录锁模块12判断出锁被授权,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果;
请求处理模块14,用于根据各返回结果,对至少一个操作请求对应的元数据进行处理。
本发明实施例提供的元数据服务器,通过对相同目录下的多个并发操作请求,如新建操作、删除操作、修改操作等,先获取该目录的锁,若锁被授权,则对多个客户端发送的操作请求进行目录级别的合并,从而提高对元数据的处理效率。
进一步的,合并判决模块13,对于每一个操作请求,判断操作请求的类别,类别包括:第一类别、第二类别和第三类别,其中,第一类别包括对元数据的读操作,第二类别包括对元数据的新建操作、修改操作和删除操作,第三类别包括对元数据的移动操作、新建链接操作和删除链接操作,根据操作请求所属的类别,返回操作请求对应的返回结果。
进一步的,合并判决模块13,用于若操作请求属于第一类别,则返回操作请求为读请求的返回结果。
进一步的,合并判决模块13,用于若操作请求属于第二类别,则判断操作请求对元数据的操作是否合法,若判断出操作请求对元数据的操作不合法,则返回操作请求为错误请求的返回结果;
否则,若判断出操作请求对元数据的操作合法,则判断合并队列中是否存在第三类别的操作请求,合并队列包括可合并的返回结果对应的操作请求,若判断出合并队列中存在第三类别的操作请求,则返回操作请求为互斥请求的返回结果;
否则,若判断出合并队列中不存在第三类别的操作请求,则请求处理模块14用于将第二类别的操作请求加入到合并队列中,将第二类别的操作请求操作的元数据加入到缓冲数据队列中,合并判决模块13用于返回操作请求为可合并请求的返回结果。
进一步的,合并判决模块13,用于若操作请求属于第三类别,则判断操作请求对元数据的操作是否合法,若判断出操作请求对元数据的操作不合法,则返回操作请求为错误请求的返回结果;
否则,若判断出操作请求对元数据的操作合法,则判断合并队列中是否存在第二类别的操作请求,或者,第三类别的操作请求,合并队列包括可合并的返回结果对应的操作请求;
若判断出合并队列中存在第二类别的操作请求,或者,第三类别的操作请求,则返回操作请求为互斥请求的返回结果;
否则,若合并队列中不存在第二类别的操作请求,并且,不存在第三类别的操作请求,则将第三类别的操作请求加入到合并队列中,将第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回操作结果为可合并请求的返回结果。
进一步的,请求处理模块14,用于将操作请求移出请求队列,并响应操作请求。
进一步的,请求处理模块14,用于将操作请求移出请求队列,并响应操作请求。
进一步的,请求处理模块14,用于将操作请求保存在请求队列中。
进一步的,请求处理模块14,用于将缓冲数据队列中的元数据发送给存储节点,以使存储节点对元数据进行写入以得到事务结果,根据事务结果,向合并队列中的操作请求对应的客户端发送操作响应。
进一步的,目录锁模块12,还用于判断请求队列中是否还存在操作请求;
合并判决模块13,还用于若目录锁模块12判断出请求队列中还存在操作请求,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果;请求处理模块14,还用于若目录锁模块12判断出请求队列中不存在操作请求,则释放锁。
图4为本发明元数据服务器实施例二的结构示意图。如图4所示,本实施例的元数据服务器200包括:存储器21和处理器22;
存储器21,用于存储元数据处理方法的代码;
处理器22,用于根据存储器21存储的代码,将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;判断目录的锁是否被授权;若锁被授权,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果;根据各返回结果,对至少一个操作请求对应的元数据进行处理。
可选的,处理器22,用于若目录的锁被授权,则对于每一个操作请求,判断操作请求的类别,类别包括:第一类别、第二类别和第三类别,其中,第一类别包括对元数据的读操作,第二类别包括对元数据的新建操作、修改操作和删除操作,第三类别包括对元数据的移动操作、新建链接操作和删除链接操作;根据操作请求所属的类别,返回操作请求对应的返回结果。
可选的,处理器22,用于若操作请求属于第一类别,则返回操作请求为读请求的返回结果。
可选的,处理器22,用于若操作请求属于第二类别,则判断操作请求对元数据的操作是否合法,若不合法,则返回操作请求为错误请求的返回结果;否则,若合法,则判断合并队列中是否存在第三类别的操作请求,合并队列包括可合并的返回结果对应的操作请求;若合并队列中存在第三类别的操作请求,则返回操作请求为互斥请求的返回结果;否则,若合并队列中不存在第三类别的操作请求,则将第二类别的操作请求加入到合并队列中,将第二类别的操作请求操作的元数据加入到缓冲数据队列中,并返回操作请求为可合并请求的返回结果。
可选的,处理器22,用于若操作请求属于第三类别,则判断操作请求对元数据的操作是否合法;若不合法,则返回操作请求为错误请求的返回结果;否则,若合法,则判断合并队列中是否存在第二类别的操作请求,或者,第三类别的操作请求,合并队列包括可合并的返回结果对应的操作请求;若合并队列中存在第二类别的操作请求,或者,第三类别的操作请求,则返回操作请求为互斥请求的返回结果;否则,若合并队列中不存在第二类别的操作请求,并且,不存在第三类别的操作请求,则将第三类别的操作请求加入到合并队列中,将第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回操作结果为可合并请求的返回结果。
可选的,处理器22,用于将操作请求移出请求队列,响应操作请求。
可选的,处理器22,用于若不合法,返回操作请求为错误请求的返回结果,则将操作请求移出请求队列,响应操作请求。
可选的,处理器22,若返回操作请求为互斥请求的返回结果,则将操作请求保存在请求队列中。
可选的,处理器22,用于将缓冲数据队列中的元数据发送给存储节点,以使存储节点对元数据进行写入以得到事务结果,根据事务结果,向合并队列中的操作请求对应的客户端发送操作响应。
可选的,处理器22,用于判断请求队列中是否还存在操作请求;
若存在,则遍历请求队列中的每个操作请求,返回每一操作请求的返回结果,否则,若不存在,则释放锁。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种元数据处理方法,其特征在于,包括:
将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;
判断所述目录的锁是否被授权;
若所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述若所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果,包括:
对于每一个操作请求,判断所述操作请求的类别,所述类别包括:第一类别、第二类别和第三类别,其中,所述第一类别包括对元数据的读操作,所述第二类别包括对元数据的新建操作、修改操作和删除操作,所述第三类别包括对元数据的移动操作、新建链接操作和删除链接操作;
根据所述操作请求所属的类别,返回所述操作请求对应的返回结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第一类别,则返回所述操作请求为读请求的返回结果。
4.根据权利要求2所述的方法,其特征在于,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第二类别,则判断所述操作请求对元数据的操作是否合法;
若不合法,则返回所述操作请求为错误请求的返回结果;
否则,若合法,则判断合并队列中是否存在所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若所述合并队列中存在所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第三类别的操作请求,则将所述第二类别的操作请求加入到所述合并队列中,将所述第二类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作请求为可合并请求的返回结果。
5.根据权利要求2所述的方法,其特征在于,所述根据所述操作请求所属的类别,返回所述操作请求对应的返回结果,包括:
若所述操作请求属于所述第三类别,则判断所述操作请求对元数据的操作是否合法;
若不合法,则返回所述操作请求为错误请求的返回结果;
否则,若合法,则判断合并队列中是否存在所述第二类别的操作请求,或者,所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若所述合并队列中存在所述第二类别的操作请求,或者,所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第二类别的操作请求,并且,不存在所述第三类别的操作请求,则将所述第三类别的操作请求加入到所述合并队列中,将所述第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作结果为可合并请求的返回结果。
6.根据权利要求3所述的方法,其特征在于,所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求移出所述请求队列;
响应所述操作请求。
7.根据权利要求4或5所述的方法,其特征在于,若不合法,返回所述操作请求为错误请求的返回结果,则所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求移出所述请求队列;
响应所述操作请求。
8.根据权利要求4或5所述的方法,其特征在于,若返回所述操作请求为互斥请求的返回结果,则所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述操作请求保存在所述请求队列中。
9.根据权利要求4、5或8所述的方法,其特征在于,所述根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理,包括:
将所述缓冲数据队列中的元数据发送给存储节点,以使所述存储节点对所述元数据进行写入以得到事务结果;
根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应。
10.根据权利要求9所述的方法,其特征在于,所述根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应之后,还包括:
判断所述请求队列中是否还存在操作请求;
若存在,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
否则,若不存在,则释放所述锁。
11.一种元数据服务器,其特征在于,包括:
请求队列模块,用于将多个客户端发送的对同一目录的至少一个操作请求缓存至请求队列;
目录锁模块,用于判断所述目录的锁是否被授权;
合并判决模块,用于若所述目录锁模块判断出所述锁被授权,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
请求处理模块,用于根据各所述返回结果,对所述至少一个操作请求对应的元数据进行处理。
12.根据权利要求11所述的元数据服务器,其特征在于,
所述合并判决模块,对于每一个操作请求,判断所述操作请求的类别,所述类别包括:第一类别、第二类别和第三类别,其中,所述第一类别包括对元数据的读操作,所述第二类别包括对元数据的新建操作、修改操作和删除操作,所述第三类别包括对元数据的移动操作、新建链接操作和删除链接操作,根据所述操作请求所属的类别,返回所述操作请求对应的返回结果。
13.根据权利要求12所述的元数据服务器,其特征在于,
所述合并判决模块,用于若所述操作请求属于所述第一类别,则返回所述操作请求为读请求的返回结果。
14.根据权利要求12所述的元数据服务器,其特征在于,
所述合并判决模块,用于若所述操作请求属于所述第二类别,则判断所述操作请求对元数据的操作是否合法,若判断出所述操作请求对元数据的操作不合法,则返回所述操作请求为错误请求的返回结果;
否则,若判断出所述操作请求对元数据的操作合法,则判断合并队列中是否存在所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求,若判断出所述合并队列中存在所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若判断出所述合并队列中不存在所述第三类别的操作请求,则所述请求处理模块用于将所述第二类别的操作请求加入到所述合并队列中,将所述第二类别的操作请求操作的元数据加入到缓冲数据队列中,所述合并判决模块用于返回所述操作请求为可合并请求的返回结果。
15.根据权利要求12所述的元数据服务器,其特征在于,
所述合并判决模块,用于若所述操作请求属于所述第三类别,则判断所述操作请求对元数据的操作是否合法,若判断出所述操作请求对元数据的操作不合法,则返回所述操作请求为错误请求的返回结果;
否则,若判断出所述操作请求对元数据的操作合法,则判断合并队列中是否存在所述第二类别的操作请求,或者,所述第三类别的操作请求,所述合并队列包括可合并的返回结果对应的操作请求;
若判断出所述合并队列中存在所述第二类别的操作请求,或者,所述第三类别的操作请求,则返回所述操作请求为互斥请求的返回结果;
否则,若所述合并队列中不存在所述第二类别的操作请求,并且,不存在所述第三类别的操作请求,则将所述第三类别的操作请求加入到所述合并队列中,将所述第三类别的操作请求操作的元数据加入到缓冲数据队列中,并返回所述操作结果为可合并请求的返回结果。
16.根据权利要求13所述的元数据服务器,其特征在于,
所述请求处理模块,用于将所述操作请求移出所述请求队列,并响应所述操作请求。
17.根据权利要求14或15所述的元数据服务器,其特征在于,
所述请求处理模块,用于将所述操作请求移出所述请求队列,并响应所述操作请求。
18.根据权利要求14或15所述的元数据服务器,其特征在于,
所述请求处理模块,用于将所述操作请求保存在所述请求队列中。
19.根据权利要求14、15或18所述的元数据服务器,其特征在于,
所述请求处理模块,用于将所述缓冲数据队列中的元数据发送给存储节点,以使所述存储节点对所述元数据进行写入以得到事务结果;
所述元数据服务器,还包括发送模块,用于根据所述事务结果,向所述合并队列中的操作请求对应的客户端发送操作响应。
20.根据权利要求19所述的元数据服务器,其特征在于,
所述目录锁模块,还用于判断所述请求队列中是否还存在操作请求;
所述合并判决模块,还用于若所述目录锁模块判断出所述请求队列中还存在操作请求,则遍历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果;
所述请求处理模块,还用于若所述目录锁模块判断出所述请求队列中不存在操作请求,则释放所述锁。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310464137.8A CN103501339B (zh) | 2013-09-30 | 2013-09-30 | 元数据处理方法及元数据服务器 |
PCT/CN2014/083065 WO2015043305A1 (zh) | 2013-09-30 | 2014-07-25 | 元数据处理方法及元数据服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310464137.8A CN103501339B (zh) | 2013-09-30 | 2013-09-30 | 元数据处理方法及元数据服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103501339A true CN103501339A (zh) | 2014-01-08 |
CN103501339B CN103501339B (zh) | 2017-06-20 |
Family
ID=49866509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310464137.8A Active CN103501339B (zh) | 2013-09-30 | 2013-09-30 | 元数据处理方法及元数据服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103501339B (zh) |
WO (1) | WO2015043305A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015043305A1 (zh) * | 2013-09-30 | 2015-04-02 | 华为技术有限公司 | 元数据处理方法及元数据服务器 |
CN105468763A (zh) * | 2015-12-01 | 2016-04-06 | 广东电网有限责任公司电网规划研究中心 | 大数据操作多人协作方法 |
CN105512279A (zh) * | 2015-12-04 | 2016-04-20 | 华为技术有限公司 | 一种元数据访问方法、相关设备及*** |
CN106534309A (zh) * | 2016-11-14 | 2017-03-22 | 晶赞广告(上海)有限公司 | 一种数据处理方法及装置 |
CN106960055A (zh) * | 2017-04-01 | 2017-07-18 | 广东浪潮大数据研究有限公司 | 一种文件删除方法及装置 |
CN111737204A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 文件目录遍历方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件***动态元数据管理方法及*** |
US20100281362A1 (en) * | 2009-04-29 | 2010-11-04 | Microsoft Corporation | Maintaining Undo and Redo Capability across Metadata Merges |
CN102567444A (zh) * | 2011-10-25 | 2012-07-11 | 无锡城市云计算中心有限公司 | 一种分布式文件***数据访问优化的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2159994A1 (en) * | 2008-08-26 | 2010-03-03 | BRITISH TELECOMMUNICATIONS public limited company | Operation of a content distribution network |
CN102831156B (zh) * | 2012-06-29 | 2014-12-31 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN103501339B (zh) * | 2013-09-30 | 2017-06-20 | 华为技术有限公司 | 元数据处理方法及元数据服务器 |
-
2013
- 2013-09-30 CN CN201310464137.8A patent/CN103501339B/zh active Active
-
2014
- 2014-07-25 WO PCT/CN2014/083065 patent/WO2015043305A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
US20100281362A1 (en) * | 2009-04-29 | 2010-11-04 | Microsoft Corporation | Maintaining Undo and Redo Capability across Metadata Merges |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件***动态元数据管理方法及*** |
CN102567444A (zh) * | 2011-10-25 | 2012-07-11 | 无锡城市云计算中心有限公司 | 一种分布式文件***数据访问优化的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015043305A1 (zh) * | 2013-09-30 | 2015-04-02 | 华为技术有限公司 | 元数据处理方法及元数据服务器 |
CN105468763A (zh) * | 2015-12-01 | 2016-04-06 | 广东电网有限责任公司电网规划研究中心 | 大数据操作多人协作方法 |
CN105512279A (zh) * | 2015-12-04 | 2016-04-20 | 华为技术有限公司 | 一种元数据访问方法、相关设备及*** |
WO2017092673A1 (zh) * | 2015-12-04 | 2017-06-08 | 华为技术有限公司 | 一种元数据访问方法、相关设备及*** |
CN105512279B (zh) * | 2015-12-04 | 2019-05-03 | 华为技术有限公司 | 一种元数据访问方法、相关设备及*** |
CN106534309A (zh) * | 2016-11-14 | 2017-03-22 | 晶赞广告(上海)有限公司 | 一种数据处理方法及装置 |
CN106960055A (zh) * | 2017-04-01 | 2017-07-18 | 广东浪潮大数据研究有限公司 | 一种文件删除方法及装置 |
CN106960055B (zh) * | 2017-04-01 | 2020-08-04 | 广东浪潮大数据研究有限公司 | 一种文件删除方法及装置 |
CN111737204A (zh) * | 2020-06-12 | 2020-10-02 | 北京百度网讯科技有限公司 | 文件目录遍历方法、装置、设备和介质 |
CN111737204B (zh) * | 2020-06-12 | 2024-03-19 | 北京百度网讯科技有限公司 | 文件目录遍历方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103501339B (zh) | 2017-06-20 |
WO2015043305A1 (zh) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103501339A (zh) | 元数据处理方法及元数据服务器 | |
JP6553822B2 (ja) | 分散システムにおける範囲の分割および移動 | |
US8301588B2 (en) | Data storage for file updates | |
US8219544B2 (en) | Method and a computer program product for indexing files and searching files | |
KR20200093569A (ko) | 클라이언트 동기화에서의 위반 해결 | |
CN100456311C (zh) | 用于实施基于内容的文件***安全性的***和方法 | |
CN110062925A (zh) | 用于云集成的快照元数据布置 | |
US20090234880A1 (en) | Remote storage and management of binary object data | |
US7716365B2 (en) | Automatically targeting and filtering shared network resources | |
CN102012933A (zh) | 分布式文件***及利用其存储数据和提供服务的方法 | |
CN104679898A (zh) | 一种大数据访问方法 | |
CN101567805A (zh) | 并行文件***发生故障后的恢复方法 | |
US20060161539A1 (en) | Method and system of database management with shared area | |
CN103460197A (zh) | 计算机***、文件管理方法以及元数据服务器 | |
CN110321325A (zh) | 文件索引节点查找方法、终端、服务器、***及存储介质 | |
CN102426594A (zh) | 对数据库进行操作的方法和*** | |
CN103294167B (zh) | 一种基于数据行为的低能耗集群存储复制装置和方法 | |
CN101488924B (zh) | 一种元数据的修改方法和元数据服务器 | |
CN106775446A (zh) | 基于固态硬盘加速的分布式文件***小文件访问方法 | |
CN103037004A (zh) | 云存储***操作的实现方法和装置 | |
CN103595797A (zh) | 一种分布式存储***中的缓存方法 | |
CN103729247A (zh) | 数据获取请求的处理方法、***及服务器 | |
CN107832423A (zh) | 一种用于分布式文件***的文件读写方法 | |
CN103559319A (zh) | 分布式集群文件***的缓存同步方法和设备 | |
CN111522791B (zh) | 一种分布式文件重复数据删除***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |