CN107463577A - 一种数据存储***以及数据查找方法 - Google Patents
一种数据存储***以及数据查找方法 Download PDFInfo
- Publication number
- CN107463577A CN107463577A CN201610393783.3A CN201610393783A CN107463577A CN 107463577 A CN107463577 A CN 107463577A CN 201610393783 A CN201610393783 A CN 201610393783A CN 107463577 A CN107463577 A CN 107463577A
- Authority
- CN
- China
- Prior art keywords
- metadata
- main frame
- target
- file destination
- file
- 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
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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- 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/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据存储***以及数据查找方法,用于分布式存储文件元数据。本发明实施例方法包括:元数据主机,用于存储文件元数据,返回所述目标文件元数据;查询主机,用于接收对所述目标文件元数据的元数据查找请求,确定存储有所述目标文件元数据的目标元数据主机,从所述目标元数据主机中获取所述目标文件元数据。当随着***的规模越来越大时,可以用于存储的文件元数据的主机也越来越多,即可以接受对文件元数据的查询的主机越来越多,因此***扩展时不会受到元数据主机的服务能力的限制。
Description
技术领域
本发明涉及电学领域,尤其涉及一种数据存储***以及数据查找方法。
背景技术
分布式存储技术是大数据***的关键技术,这种存储技术可以把多台主机的本地存储共享出来,将该多台主机作为一个统一的存储***。在这样的存储***中,任何一台主机都可以透明的访问这个存储***的任何一台主机。
目前使用最广泛的分布式存储技术是分布式文件***HDFS。在HDFS中,实际存储数据文件的主机被称为Data Node,一个HDFS的***包括多台Data Node。***中任何一台Data Node会根据该数据文件生成文件元数据,然后会把文件元数据存储到另一台特定的主机上,该存储文件元数据的主机被称为Name Node。一般来说,一个HDFS的***中,Name Node会有两台,分别存储同样的内容,互为主备。当Data Node1应用程序需要读取一个数据文件时,先请求Name Node返回对该数据文件的文件元数据,然后根据NameNode的返回该文件元数据找到数据实际存储的主机Data Node2,最后从该Data Node2种获取该数据文件。
Name Node作为一台主机,其对数据的处理总是有限的,因此服务能力是有限的。然而在实际应用中,往往需要大规模的***,该***中的Data Node的数量相当大,而需要存储的文件元数据的数量也是相当大的。同时会有大量的主机需要对存储的文件元数据进行搜索,由于Name Node的服务能力往往不足够应对如此大量的搜索,容易造成***崩溃,使得***的规模难以继续扩大。
发明内容
本发明实施例提供了一种数据存储***以及数据查找方法,用于分布式存储文件元数据。
有鉴于此,本申请第一方面提供了一种数据存储***,该***包括:元数据主机,用于存储文件元数据,返回目标文件元数据;查询主机,用于接收对该目标文件元数据的元数据查找请求,确定存储有该目标文件元数据的目标元数据主机,从该目标元数据主机中获取该目标文件元数据。
该数据存储***由多台主机组成,主机的数量规模,还可以继续扩展。该主机可以作为元数据主机,用于存储文件元数据,以及返回文件元数据。该主机还可以作为查询主机,用于当接收对目标文件元数据的元数据查找请求时,根据该元数据查找请求确定存储有该文件元数据的元数据主机,并从该元数据主机中获取该文件元数据。
需要说明的是,该查询主机和该元数据主机可能为同一台主机,即当查询主机接收对目标文件元数据的元数据查找请求时,根据该元数据查找请求确定存储有该文件元数据的元数据主机为本机时,可以从本机获取该文件元数据。
由于***中的所有主机都可以作为存储文件元数据的元数据主机,而不是将所有文件元数据都集中存储在某一台特定的主机上,因此当随着***的规模越来越大时,可以用于存储的文件元数据的主机也越来越多,即可以接受对文件元数据的查询的主机越来越多,因此***扩展时不会受到元数据主机的服务能力的限制。
结合本申请的第一方面,本申请的第一方面的第一种实施方式,该***包括:路由表主机,用于存储路由表条目,返回该目标路由表条目,该目标路由表条目用于指示该目标文件元数据存储在该目标元数据主机中。
结合本申请的第一方面的第一种实施方式,本申请的第一方面的第二种实施方式,该查询主机包括确定单元,该确定单元用于确定存储有该目标文件元数据的目标元数据主机;该确定单元包括:第一确定子单元,用于根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机;获取子单元,用于从该第一确定子单元确定的该目标路由表主机中获取该目标路由表条目;第二确定子单元,用于根据该获取子单元获取的该目标路由表条目,确定存储有该目标文件元数据的该目标元数据主机。
路由表条目用于指示该目标文件元数据存储在该目标元数据主机中。
可选的,查询主机可能无法直接通过元数据查找请求确定存储有该目标文件元数据的目标元数据主机,在这种情况下,该数据存储***中的主机还可以作为路由表主机,该路由表主机用于存储路由表条目,该路由表条目用于指示存储有该目标文件元数据的目标元数据主机。
具体的,文件元数据和存储该文件元数据的元数据主机的对应关系可以作为一种以文件目录的形式构成的路由表被存储起来,该路由表中的每一个路由表条目都可以指示一个文件元数据和存储该文件元数据的元数据主机的对应关系。在本发明实施例中,该路由表被分割成多个路由表条目,分别存储在***的各个主机中,在另一个角度,也可以说***中的存储的路由表条目组成一个以文件目录的形式构成的完整的路由表。
存储目标路由表条目的目标路由表主机可以采用一致Hash算法得出,则无论是查询主机需要查询用于获取目标路由表条目的该目标路由表主机,或者是元数据存储主机需要确定用于存储该目标路由表条目的目标路由表主机,都可以得到确定的同一个主机。
存储目标路由表条目的目标路由表主机可以采用一致Hash算法得出,则无论是查询主机需要查询用于获取目标路由表条目的该目标路由表主机,或者是元数据存储主机需要确定用于存储该目标路由表条目的目标路由表主机,都可以得到确定的同一个主机。另外,从总体上看,通过Hash算法还可以使得每个路由表条目是近乎随机均匀地存储在多台主机上的,因此每个路由表条目的存储位置有一定的固定性。
结合本申请的第一方面的第二种实施方式,本申请的第一方面的第三种实施方式,该查询主机还包括:存储单元,用于当该查询主机从该目标元数据主机中获取该目标文件元数据之后,存储该目标文件元数据。
结合本申请的第一方面的第三种实施方式,本申请的第一方面的第四种实施方式,该目标路由表主机还包括:更新单元,用于当返回该目标路由表条目之后,更新该目标路由表条目,得到更新后的目标路由表条目,该更新后的目标路由表条目用于指示该目标文件元数据存储在该查询主机中。
结合本申请的第一方面的第三种实施方式、本申请的第一方面的第四种实施方式,本申请的第一方面的第五种实施方式,该目标元数据主机还包括:删除单元,用于返回该目标文件元数据之后,删除该目标文件元数据。
结合本申请的第一方面、本申请的第一方面的第一种实施方式、本申请的第一方面的第二种实施方式、本申请的第一方面的第三种实施方式、本申请的第一方面的第四种实施方式,本申请的第一方面的第六种实施方式,该查询主机还包括:搜索单元,用于当该查询主机接收该元数据查找请求之后,在本地搜索该文件元数据,若搜索不到该文件元数据,则触发该查找主机确定存储有该目标文件元数据的目标元数据主机的步骤。
本申请第二方面提供了一种数据查找方法,用于如本申请第二方面中该任一项***,该方法包括:查询主机接收对目标文件元数据的元数据查找请求;该查询主机确定存储有该目标文件元数据的目标元数据主机;该查询主机从该目标元数据主机中获取该目标文件元数据。
当查询主机接收对目标文件元数据的元数据查找请求时,可以通过用户在终端输入需要对某些数据或文件的查找请求,根据该对数据或文件的查找请求确定目标文件元数据,从而生成对目标文件元数据的元数据查找请求。若该目标路由表主机与该查询主机不是同一台主机,则该查询主机可以向目标路由表主机发送对该目标路由表条目的获取请求,该目标路由表主机接收该对目标路由表条目的获取请求时,返回该目录路由表条目。
若该目标元数据主机与该查询主机不是同一台主机,则该查询主机可以向目标元数据主机发送对该目标文件元数据的获取请求,该目标元数据主机接收该对目标文件元数据的获取请求时,返回该目录路由表条目。当查询主机从该目标元数据主机中获取该目标文件元数据后,可选的,可以将目标文件元数据搬迁至本地,并删除在目标元数据主机中的目标文件元数据,并且更新目标路由表主机中的目标路由表条目。
由于***中的所有主机都可以作为存储文件元数据的元数据主机,而不是将所有文件元数据都集中存储在某一台特定的主机上,因此当随着***的规模越来越大时,可以用于存储的文件元数据的主机也越来越多,即可以接受对文件元数据的查询的主机越来越多,因此***扩展时不会受到元数据主机的服务能力的限制。
结合本申请的第二方面,本申请的第二方面的第一种实施方式,该方法包括:该查询主机根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机;该查询主机从该目标路由表主机中获取该目标路由表条目;该查询主机根据该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。
结合本申请的第二方面,本申请的第二方面的第二种实施方式,该方法还包括:该查询主机存储该目标文件元数据。
结合本申请的第二方面、本申请的第二方面的第一种实施方式、本申请的第二方面的第二种实施方式,本申请的第二方面的第三种实施方式,该方法还包括:该查询主机从本地搜索该目标文件元数据;若搜索到该目标文件元数据,则返回该目标文件元数据;若搜索不到该目标文件元数据,则触发该查询主机确定存储有该目标文件元数据的该目标元数据主机的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
由于***中的所有主机都可以作为存储文件元数据的元数据主机,而不是将所有文件元数据都集中存储在某一台特定的主机上,因此当随着***的规模越来越大时,可以用于存储的文件元数据的主机也越来越多,即可以接受对文件元数据的查询的主机越来越多,因此***扩展时不会受到元数据主机的服务能力的限制。
附图说明
图1为本申请实施例中数据存储***的架构示意图;
图2为本申请实施例中查询主机的一个实施例示意图;
图3为本申请实施例中元数据主机的一个实施例示意图;
图4为本申请实施例中路由表主机的一个实施例示意图;
图5为本申请实施例中数据查找方法的一个实施例示意图;
图6为本申请实施例中数据查找方法的另一个实施例示意图;
图7为本申请实施例中数据查找方法的另一个实施例示意图;
图8为本申请实施例中***中的主机的一个实施例示意图;
图9为本申请实施例中***中的主机的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种数据存储***以及数据查找方法,用于分布式存储文件元数据。
为了使本技术领域的人员更好地理解本发明实施例方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
当下随着通讯技术的发展,已经渐渐走向大数据的时代,面对偌大的数据存储量,独立的存储服务器已经很难满足了。针对大数据的技术有很多,而分布式存储技术是大数据***的关键技术。分布式存储技术可以把多台主机的本地存储共享出来,将该多台主机作为一个统一的存储***,当其中任何一台主机需要***中的某个数据或者文件时,可以访问这个存储***的任何一台主机,从而获取该数据或文件。
分布式文件***HDFS是目前为止被使用得最广泛的分布式存储技术。在HDFS中,实际存储数据文件的主机被称为数据主机Data Node,作为DataNode不仅可以存储数据或文件,还可以通过访问其他主机以获取需要的数据或文件,HDFS包括多台这样的Data Node。具体的存取方法为,HDFS中任何一台Data Node会根据该数据或文件生成文件元数据,然后会将该文件元数据存储到另一台特定的专门用于存储该文件元数据的主机上,存储该文件元数据的主机被称为元数据主机Name Node。需要说明的是,在一般情况下,在HDFS中,往往会有两台Name Node,互为主备,存储同样的内容,以防其中一台有故障或者被入侵等不可控的情况。具体的,当Data Node1内的应用程序需要读取一个数据或文件时,或者用户使用Data Node1需要查找一个数据或文件时,一般会先访问Name Node,并请求其返回对该数据或文件的文件元数据,然后根据Name Node的返回该文件元数据确定数据或文件实际存储的主机Data Node2,再从该Data Node2种获取该数据或文件。
然而,HDFS中的Name Node作为一台主机,面对***的扩展,越来越多的Data Node需要对数据或文件进行搜索,一台主机面对如此大的搜索量,其服务能力是有限的。由于Name Node的服务能力往往不足够应对如此大量的搜索,可能会造成Data Node搜索的速度变慢,严重的甚至可能造成***崩溃,以至于***的规模难以继续扩展。
因此,在本发明实施例中,提出了一种数据存储***以及数据查找方法,用于分布式存储文件元数据,由于***中的所有主机都可以存储文件元数据,而不需要将所有文件元数据都集中存储在某一台或两台特定的主机上,因此当随着***的规模越来越大时,可以用于存储的文件元数据的主机也越来越多,即可以接受对文件元数据的查询的服务能力越来越强,因此***的扩展不会受到文件元数据的存储量和对该文件元数据的搜索量的影响。
有鉴于此,如图1所示,是本发明实施例提出的一种数据存储***的架构示意图,该数据存储***由多台主机组成,该主机可以作为元数据主机,用于存储文件元数据,以及返回文件元数据。该主机还可以作为查询主机,用于当接收对目标文件元数据的元数据查找请求时,根据该元数据查找请求确定存储有该文件元数据的元数据主机,并从该元数据主机中获取该文件元数据。需要说明的是,该查询主机和该元数据主机可能为同一台主机,即当查询主机接收对目标文件元数据的元数据查找请求时,根据该元数据查找请求确定存储有该文件元数据的元数据主机为本机时,可以从本机获取该文件元数据。在另一些可行的实施例中,也可以在确定存储有该文件元数据的元数据主机时,先查询本机是否存储有该文件元数据,此处不作限定。
可选的,在一些可行的实施例中,查询主机可能无法直接通过元数据查找请求确定存储有该目标文件元数据的目标元数据主机,在这种情况下,该数据存储***中的主机还可以作为路由表主机,该路由表主机用于存储路由表条目,该路由表条目用于指示存储有该目标文件元数据的目标元数据主机。具体的,在本发明实施例中,文件元数据和存储该文件元数据的元数据主机的对应关系可以作为一种以文件目录的形式构成的路由表被存储起来,该路由表中的每一个路由表条目都可以指示一个文件元数据和存储该文件元数据的元数据主机的对应关系。在本发明实施例中,该路由表被分割成多个路由表条目,分别存储在***的各个主机中,在另一个角度,也可以说***中的存储的路由表条目组成一个以文件目录的形式构成的完整的路由表。
在一些可行的实施例中,存储目标路由表条目的目标路由表主机可以采用一致Hash算法得出,则无论是查询主机需要查询用于获取目标路由表条目的该目标路由表主机,或者是元数据存储主机需要确定用于存储该目标路由表条目的目标路由表主机,都可以得到确定的同一个主机。
具体的,如图2所示,是一种***中的主机作为查询主机的一个实施例示意图,该查询主机包括:
接收单元201,用于接收对该目标文件元数据的元数据查找请求。
确定单元203,用于根据确定存储有该接收单元201指示的该目标文件元数据的目标元数据主机。
获取单元204,用于获取从该确定单元203确定的该目标元数据主机中获取该目标文件元数据。
具体的,该确定单元203可以包括:
第一确定子单元2031,用于根据该接收单元201接收的该元数据查找请求确定存储有目标路由表条目的目标路由表主机。
获取子单元2032,用于从该第一确定子单元2031确定的该目标路由表主机中获取该目标路由表条目。
第二确定子单元2033,用于根据该获取子单元2032获取的该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。
可选的,该查询主机200还可以包括:
第一存储单元205,用于该获取单元204从该目标元数据主机中获取该目标文件元数据之后,存储该获取单元204获取的该目标文件元数据。
可选的,该查询主机200还可以包括:
搜索单元202,用于该接收单元201接收对目标文件元数据的元数据查找请求之后,从本地该目标文件元数据,若该到该目标文件元数据,则返回该目标文件元数据,若该不到该目标文件元数据,则触发该确定单元203执行其功能。
如图3所示,是一种***中的主机作为元数据主机300的一个实施例示意图。
第二存储单元301,用于存储文件元数据。
第一返回单元302,用于返回目标文件元数据。
可选的,该元数据主机300还可以包括:
删除单元303,用于返回该目标文件元数据之后,删除该目标文件元数据。
如图4所示,是一种***中的主机作为路由表主机的一个实施例示意图。
第三存储单元401,用于存储路由表条目。
第二返回单元402,当接收对目标路由表条目的路由查询请求时,返回该第三存储单元401存储的该目标路由表条目,该目标路由表条目用于指示该目标文件元数据存储在该目标元数据主机中。
可选的,该元数据主机400还可以包括:
更新单元403,用于该第二返回单元402返回该目标文件元数据之后,删除该目标文件元数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的单元的具体工作过程,可以参考下述方法实施例中步骤501至步骤510的对应过程,在此不再赘述。
为便于理解,下面对本发明实施例中的数据查找方法的具体的交互式流程进行描述,请参阅图5,本发明实施例中数据查找方法的一个实施例包括:
501、查询主机接收对目标文件元数据的元数据查找请求。
在本发明实施例中,当查询主机接收对目标文件元数据的元数据查找请求时,可以通过用户在终端输入需要对某些数据或文件的查找请求,根据该对数据或文件的查找请求确定目标文件元数据,从而生成对目标文件元数据的元数据查找请求。在另一些可行的实施例中,可以直接接收用户对目标文件元数据的元数据查找请求,如在某下载软件的下载窗口中直接键入链接或者代码,使得可以产生对查询主机可以接收对目标文件元数据的元数据查找请求。或者当查询主机为服务器或者终端时,当查询主机在运行某些应用程序,使得需要目标数据文件,则生成对目标文件元数据的需求,则可以以此接收对目标文件元数据的元数据查找请求。
在一些可行的实施例中,目标文件元数据或者文件元数据可以是一个链接、或者是一个种子文件、或者是其他可以指示存储着目标数据文件的指示,此处不作限定。在另一些可行的实施例中,查询主机也可以接收其他主机发送的对目标文件元数据的元数据查找请求,此处不作限定。
需要说明的是,在本发明实施例中,当查询主机接收对目标文件元数据的元数据查找请求时,可以根据元数据查找请求确定存储有目标文件元数据的目标元数据主机。在一些可行的实施例中,可以直接通过元数据查找请求确定存储有目标文件元数据的目标元数据主机,在另一些可行的实施例中,也可以通过以下步骤504至步骤506的具体方式实现。
502、查询主机从本地搜索该目标文件元数据。
可选的,在一些可行的实施例中,当查询主机接收到对目标文件元数据的元数据查找请求时,可以首先在本地搜索该目标文件元数据。具体的,查询主机可以通过对本地的文件目录的遍历来实现搜索。在一些可行的实施例中,一般的,多数应用程序,会把文件的存储划分成多个目录。不同的主机,操作的数据文件存储在不同的目录下,而应用程序对文件的遍历是基于此种文件目录形式的。需要说明的是,通常情况下,大部分的应用程序对文件***的使用和访问都是符合文件目录的存储形式的,如果有某些应用程序对文件的访问方式不符合该存储形式,则可以通过修改应用来适应该模式以达到最优的性能。
在另一种可行的实施例中,查询主机根据对目标文件元数据的元数据查找请求确定存储有该目标文件元数据的目标元数据主机就是本机,此处不作限定。
需要说明的是,若通过本地搜索发现该目标文件元数据,则执行以下实施例中的步骤503,若通过本地搜索没有发现该目标文件元数据,则执行以下实施例中的步骤504至步骤506。
503、查询主机返回该目标文件元数据。
在一些可行的实施例中,当查询主机从本地搜索到该目标文件元数据时,则可以返回该文件元数据,以使得查询主机可以通过该目标文件元数据查询到目标数据文件。
504、查询主机根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机。
可选的,在一些可行的实施例中,当查询主机接收对目标文件元数据的元数据查找请求时,可以根据元数据查找请求确定存储有目标路由表条目的目标路由表主机。具体的,该对目标文件元数据的元数据查找请求可以包含一个key(文件目录),然后可以根据给定的hash函数对该key进行计算,得到H(key)。需要说明的是,任何一台主机,在任何时间,通过给定的hash函数对该key进行计算,计算出的Hash值都是一样的,从而保证无论是用于需要查询该目标路由表条目的查询主机,还是需要存储该目标路由表条目的元数据主机,总是能够根据Hash值找到对应的节点,即目标路由表主机。另外,从总体上看,通过Hash算法还可以使得每个路由表条目是近乎随机均匀地存储在多台主机上的,因此每个路由表条目的存储位置有一定的固定性。
在一些可行的实施例中,为了对路由表条目进行备份,以防存在一些意外的情况丢失数据,往往需要两台或者以上对路由表条目进行备份,优选的,可以使用两台主机对目标路由表条目进行存储,互为主备。当查询主机根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机,该目标路由表主机可能有两台或者多台,优选的,可以选择离本机较近的一台,或者数据路径较短的一台。
505、查询主机从该目标路由表主机中获取该目标路由表条目。
在一些可行的实施例中,若该目标路由表主机与该查询主机不是同一台主机,则该查询主机可以向目标路由表主机发送对该目标路由表条目的获取请求,该目标路由表主机接收该对目标路由表条目的获取请求时,返回该目录路由表条目。在另一些可行的实施例中,若该目标路由表主机与该查询主机是同一台主机,则可以执行类似如上述实施例中的步骤502和步骤503中所示的,从本地获取需要的目标路由表条目,此处不再赘述。在另一些可行的实施例中,具体的,查询主机可以访问该目标路由表主机,遍历该目标路由表主机的文件目录,以查询该目标路由表条目。
506、查询主机根据该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。
在一些可行的实施例中,由于该目标路由表条目指示存储有该目标文件元数据的目标元数据主机,因此,可以通过该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。具体的,由于在目标路由表条目中,该目标文件元数据和该目标元数据主机相对应,则可确定该目标元数据主机。
507、查询主机从该目标元数据主机中获取该目标文件元数据。
在一些可行的实施例中,若该目标元数据主机与该查询主机不是同一台主机,则该查询主机可以向目标元数据主机发送对该目标文件元数据的获取请求,该目标元数据主机接收该对目标文件元数据的获取请求时,返回该目录路由表条目。在另一些可行的实施例中,若该目标元数据主机与该查询主机是同一台主机,则可以执行如上述实施例中的步骤502和步骤503,此处不再赘述。在另一些可行的实施例中,具体的,查询主机可以访问该目标元数据主机,遍历该目标元数据主机的文件目录,以查询该目标文件元数据。
在一些可行的实施例中,当查询主机从该目标元数据主机中获取该目标文件元数据后,可选的,可以将目标文件元数据搬迁至本地,并删除在目标元数据主机中的目标文件元数据,并且更新目标路由表主机中的目标路由表条目。具体的,请参考下述实施例步骤508、步骤509以及步骤510,需要说明的是,以下步骤508、步骤509以及步骤510并无时序关系。
508、查询主机存储该目标文件元数据。
在一些可行的实施例中,优选的,当查询主机确定需要经常使用该目标文件元数据时,可以存储该目标文件元数据,以使得若以后经常使用该目标文件元数据,不需要访问目标元数据主机中,而是直接在本机查询即可。若该存储目标文件元数据的方案在***中大规模地使用,则大多数查询主机都可以存储需要的文件元数据,则大多数时候的对文件元数据的要求都可以在本地满足,因此大量减少对***中的其他主机进行搜索,从而会大幅提高***的性能和效率。
509、目标路由表主机更新该目标路由表条目,得到更新后的目标路由表条目,该更新后的目标路由表条目用于指示该目标文件元数据存储在该查询主机中。
在一些可行的实施例中,当目标路由表主机向该查询主机返回目标路由表条目之后,若该查询主机会存储该目标文件元数据之后,可以向该目标路由表主机发送该信息,则该路由表主机可以更新该目标路由表条目,得到更新后的该目标路由表条目。在另一些可行的实施例中,若***预设规则为,当查询主机获取该目标文件元数据之后存储该目标文件元数据,则不需要向该目标路由表主机发送该信息,该目标路由表主机返回该目录路由表条目之后,即可自行更新该目录路由表条目。可选的,该更新后的目标路由条目可以指示该目标文件元数据存储在该查询主机中,在另一些可行的实施例中,若该目标元数据主机删除该目标文件元数据,则该更新后的目标路由表主机可以指示该目标文件元数据存储在该查询主机中,而删除该目标文件元数据该目标元数据主机中的信息,具体的,请参考下述实施例中的步骤510。然而,若该目标元数据主机保留该目标文件元数据,则得到的更新后的目标路由表主机可以指示该目标文件元数据存储在该查询主机中,同时指示目标路由表主机可以指示该目标文件元数据存储在该目标元数据主机中,此处不做限定。
510、目标元数据主机删除该目标文件元数据。
在一些可行的实施例中,可选的,当目标元数据主机向该查询主机返回目标文件元数据之后,若该目标元数据主机确定本机不常用该目标文件元数据,可以将其删除。当目标元数据主机向该查询主机返回目标文件元数据之后,若该查询主机会存储该目标文件元数据之后,可以向该目标元数据主机发送该信息,则该路由表主机可以删除该目标文件元数据。在另一些可行的实施例中,若***预设规则为,当查询主机获取该目标文件元数据之后存储该目标文件元数据,则不需要向该目标元数据主机发送该信息,该目标元数据主机返回该目标文件元数据之后,即可自行删除该目标文件元数据。
需要说明的是,虽然实施例步骤508、步骤509和步骤510之间没有时序关系,但是步骤508和步骤510都应该与步骤509相对应。如步骤508中查询主机存储了该目标文件元数据,则步骤509中目标路由表主机更新该目标路由表条目,该更新后的目标路由表条目应该指示该目标文件元数据存储在该查询主机中。同样的,若该目标元数据主机删除该目标文件元数据,相对应的,目标路由表主机应该更新该目标路由表条目,得到的更新后的目标路由表条目应该不再指示该目标文件元数据存储在该目标元数据主机中。
上述实施例中步骤501至步骤510通过交互的流程图对数据查找方法进行了描述,为了让读者更容易理解,以下请参阅图6,本实施例通过在***中的主机的角度对数据查看方法进行描述。需要说明的是,为了描述上的简洁,以下实施例中不包括查询主机在本地查询的过程,以及不包括查询主机存储该目标文件元数据、目标路由表主机更新该目标路由表条目以及目标元数据主机删除该目标文件元数据的过程。即以下实施例中步骤601与上述实施例的步骤501对应,步骤602至步骤605与上述实施例的步骤504至步骤507对应。
本发明实施例中数据查找方法的另一个实施例包括:
601、查询主机接收对目标文件元数据的元数据查找请求。
602、查询主机根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机。
603、查询主机从该目标路由表主机中获取该目标路由表条目。
604、查询主机根据该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。
605、查询主机从该目标元数据主机中获取该目标文件元数据。
本实施例中步骤601与上述实施例的步骤501相同,步骤602至步骤605与上述实施例的步骤504至步骤507相同,此处不再赘述。
上述实施例中步骤601至步骤605通过在***中的角度对数据查找方法进行了描述,为了让读者更容易理解,以下请参阅图7,本实施例通过在查询主机侧的单侧的流程的角度对数据查看方法进行描述。
请参阅图7,本发明实施例中数据查找方法的另一个实施例包括:
701、查询主机接收对目标文件元数据的元数据查找请求。
702、查询主机通过从本地搜索该目标文件元数据,判断本地是否有该目标文件元数据。
703、查询主机返回该目标文件元数据。
704、查询主机根据该元数据查找请求确定存储有目标路由表条目的目标路由表主机。
705、查询主机从该目标路由表主机中获取该目标路由表条目。
706、查询主机根据该目标路由表条目确定存储有该目标文件元数据的该目标元数据主机。
707、查询主机从该目标元数据主机中获取该目标文件元数据。
708、查询主机存储该目标文件元数据。
本实施例中步骤701至步骤708与上述实施例的步骤501至步骤508相同,此处不再赘述。
本发明实施例中***的主机还可以包括服务器,图8是本发明实施例提供的一种服务器结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作***841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本发明实施例所指的***中的主机,可以是终端,也可以是服务器,只要具备有查询主机和元数据主机的功能即可,优选的,还可以具备路由表主机的功能。具体的,可以作为终端,包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,如图9所示,以手机为例进行说明,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分:
图9示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,RF)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(wirelessfidelity,WiFi)模块970、处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
为描述的方便和简洁,上述描述的服务器或者终端的具体工作过程,可以参考上述方法实施例中的对应过程,在此不再赘述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种数据存储***,其特征在于,包括多台主机,所述***包括:
元数据主机,用于存储文件元数据,返回目标文件元数据;
查询主机,用于接收对所述目标文件元数据的元数据查找请求,确定存储有所述目标文件元数据的目标元数据主机,从所述目标元数据主机中获取所述目标文件元数据。
2.根据权利要求1所述***,其特征在于,还包括:
路由表主机,用于存储路由表条目,返回所述目标路由表条目,所述目标路由表条目用于指示所述目标文件元数据存储在所述目标元数据主机中。
3.根据权利要求2所述***,其特征在于,所述查询主机包括确定单元,所述确定单元用于确定存储有所述目标文件元数据的目标元数据主机,所述确定单元包括:
第一确定子单元,用于根据所述元数据查找请求确定存储有目标路由表条目的目标路由表主机;
获取子单元,用于从所述第一确定子单元确定的所述目标路由表主机中获取所述目标路由表条目;
第二确定子单元,用于根据所述获取子单元获取的所述目标路由表条目,确定存储有所述目标文件元数据的所述目标元数据主机。
4.根据权利要求3所述***,其特征在于,所述查询主机还包括:
存储单元,用于当所述查询主机从所述目标元数据主机中获取所述目标文件元数据之后,存储所述目标文件元数据。
5.根据权利要求4所述***,其特征在于,所述目标路由表主机还包括:
更新单元,用于当返回所述目标路由表条目之后,更新所述目标路由表条目,得到更新后的目标路由表条目,所述更新后的目标路由表条目用于指示所述目标文件元数据存储在所述查询主机中。
6.根据权利要求4或5所述***,其特征在于,所述目标元数据主机还包括:
删除单元,用于返回所述目标文件元数据之后,删除所述目标文件元数据。
7.根据权利要求1-5中任一项所述***,其特征在于,所述查询主机还包括:
搜索单元,用于当所述查询主机接收所述元数据查找请求之后,在本地搜索所述文件元数据,若搜索不到所述文件元数据,则触发所述查找主机确定存储有所述目标文件元数据的目标元数据主机的步骤。
8.一种数据查找方法,其特征在于,用于如权利要求1-7中所述任一项***,所述方法包括:
查询主机接收对目标文件元数据的元数据查找请求;
所述查询主机确定存储有所述目标文件元数据的目标元数据主机;
所述查询主机从所述目标元数据主机中获取所述目标文件元数据。
9.根据权利要求8所述方法,其特征在于,所述查询主机确定存储有所述目标文件元数据的目标元数据主机包括:
所述查询主机根据所述元数据查找请求确定存储有目标路由表条目的目标路由表主机;
所述查询主机从所述目标路由表主机中获取所述目标路由表条目;
所述查询主机根据所述目标路由表条目确定存储有所述目标文件元数据的所述目标元数据主机。
10.根据权利要求8所述方法,其特征在于,所述查询主机从所述目标元数据主机中获取所述目标文件元数据之后,还包括:
所述查询主机存储所述目标文件元数据。
11.根据权利要求8-10所述方法,其特征在于,所述查询主机接收对目标文件元数据的元数据查找请求之后,还包括:
所述查询主机从本地搜索所述目标文件元数据;
若搜索到所述目标文件元数据,则返回所述目标文件元数据;
若搜索不到所述目标文件元数据,则触发所述查询主机确定存储有所述目标文件元数据的所述目标元数据主机的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610393783.3A CN107463577B (zh) | 2016-06-06 | 2016-06-06 | 一种数据存储***以及数据查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610393783.3A CN107463577B (zh) | 2016-06-06 | 2016-06-06 | 一种数据存储***以及数据查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463577A true CN107463577A (zh) | 2017-12-12 |
CN107463577B CN107463577B (zh) | 2021-01-29 |
Family
ID=60545329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610393783.3A Active CN107463577B (zh) | 2016-06-06 | 2016-06-06 | 一种数据存储***以及数据查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463577B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449376A (zh) * | 2018-01-31 | 2018-08-24 | 合肥和钧正策信息技术有限公司 | 一种服务于企业的大数据计算节点的负载均衡方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201986A (zh) * | 2011-05-10 | 2011-09-28 | 苏州两江科技有限公司 | 非关系型数据库Cassandra中分区路由方法 |
CN102737130A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 处理hdfs元数据的方法及*** |
CN102890678A (zh) * | 2011-07-20 | 2013-01-23 | 华东师范大学 | 一种基于格雷编码的分布式数据布局方法及查询方法 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
CN103647797A (zh) * | 2013-11-15 | 2014-03-19 | 北京邮电大学 | 一种分布式文件***及其数据访问方法 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件***及均衡元数据存储和访问负载的实现方法 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN104461792A (zh) * | 2014-12-03 | 2015-03-25 | 浪潮集团有限公司 | 一种解决hadoop分布式文件***namenode单点故障的ha方法 |
WO2015124042A1 (zh) * | 2014-02-24 | 2015-08-27 | 华为技术有限公司 | 分布式文件***列式存储的元数据更新方法、装置、主机 |
CN104967641A (zh) * | 2014-08-15 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种实现主备元服务器数据同步的方法及装置 |
US20150304400A1 (en) * | 2002-11-20 | 2015-10-22 | Vcvc Iii Llc | Semantically representing a target entity using a semantic object |
WO2016033193A1 (en) * | 2014-08-26 | 2016-03-03 | Matthew Hayden Harper | Distributed input/output architecture for network functions virtualization |
US20160156947A1 (en) * | 2012-05-31 | 2016-06-02 | Magnum Semiconductor, Inc. | Transport stream multiplexers and methods for providing packets on a transport stream |
-
2016
- 2016-06-06 CN CN201610393783.3A patent/CN107463577B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150304400A1 (en) * | 2002-11-20 | 2015-10-22 | Vcvc Iii Llc | Semantically representing a target entity using a semantic object |
CN102201986A (zh) * | 2011-05-10 | 2011-09-28 | 苏州两江科技有限公司 | 非关系型数据库Cassandra中分区路由方法 |
CN102890678A (zh) * | 2011-07-20 | 2013-01-23 | 华东师范大学 | 一种基于格雷编码的分布式数据布局方法及查询方法 |
US20160156947A1 (en) * | 2012-05-31 | 2016-06-02 | Magnum Semiconductor, Inc. | Transport stream multiplexers and methods for providing packets on a transport stream |
CN102737130A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 处理hdfs元数据的方法及*** |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
CN103647797A (zh) * | 2013-11-15 | 2014-03-19 | 北京邮电大学 | 一种分布式文件***及其数据访问方法 |
WO2015124042A1 (zh) * | 2014-02-24 | 2015-08-27 | 华为技术有限公司 | 分布式文件***列式存储的元数据更新方法、装置、主机 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件***及均衡元数据存储和访问负载的实现方法 |
CN104967641A (zh) * | 2014-08-15 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种实现主备元服务器数据同步的方法及装置 |
WO2016033193A1 (en) * | 2014-08-26 | 2016-03-03 | Matthew Hayden Harper | Distributed input/output architecture for network functions virtualization |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN104461792A (zh) * | 2014-12-03 | 2015-03-25 | 浪潮集团有限公司 | 一种解决hadoop分布式文件***namenode单点故障的ha方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449376A (zh) * | 2018-01-31 | 2018-08-24 | 合肥和钧正策信息技术有限公司 | 一种服务于企业的大数据计算节点的负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107463577B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102253936B (zh) | 记录用户访问商品信息的方法及搜索方法和服务器 | |
CN111125269B (zh) | 一种数据管理方法、血缘关系显示方法和相关装置 | |
CN107911249A (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
CN106251202A (zh) | 恶意订单识别方法及装置 | |
CN111639253B (zh) | 一种数据判重方法、装置、设备及存储介质 | |
CN105630823A (zh) | 基于分布式***的缓存数据的监控方法、装置和*** | |
AU2017268599B2 (en) | Method, device, server and storage medium of searching a group based on social network | |
CN105227352A (zh) | 一种用户标识集的更新方法及装置 | |
CN105095313A (zh) | 一种数据访问方法和设备 | |
CN105939355A (zh) | 一种数据访问方法、***及客户端和服务器 | |
CN105224532A (zh) | 数据处理方法及装置 | |
CN104750872A (zh) | 一种业务对象的查询方法及装置 | |
CN104424304A (zh) | 一种基于情景感知信息的个性化推荐与导览***及控制方法 | |
CN109726295A (zh) | 品牌知识图谱显示方法、装置、图服务器及存储介质 | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
CN103326925A (zh) | 一种消息推送方法及装置 | |
US7478118B2 (en) | Method and apparatus for synchronizing of databases connected by wireless interface | |
AU2020203282B2 (en) | Method and system for matching multi-dimensional data units in electronic information system | |
CN107463577A (zh) | 一种数据存储***以及数据查找方法 | |
CN110737662B (zh) | 一种数据分析方法、装置、服务器及计算机存储介质 | |
CN116186337A (zh) | 一种业务场景数据处理方法、***及电子设备 | |
CN116071614A (zh) | 样本数据处理方法、相关设备及存储介质 | |
CN115687560A (zh) | 一种基于有限确定自动机的海量关键词查找方法 | |
CA2592813C (en) | Method and apparatus for synchronizing of databases connected by wireless interface | |
CN105069064A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200201 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 210012 HUAWEI Nanjing base, 101 software Avenue, Yuhuatai District, Jiangsu, Nanjing Applicant before: Huawei Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |