CN113672669B - 基于分布式存储的数据查询方法及装置 - Google Patents
基于分布式存储的数据查询方法及装置 Download PDFInfo
- Publication number
- CN113672669B CN113672669B CN202111224270.7A CN202111224270A CN113672669B CN 113672669 B CN113672669 B CN 113672669B CN 202111224270 A CN202111224270 A CN 202111224270A CN 113672669 B CN113672669 B CN 113672669B
- Authority
- CN
- China
- Prior art keywords
- node
- query
- leaf
- leaf node
- information
- 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.)
- Active
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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于分布式存储的数据查询方法及装置,用以实现快速且高效的进行数据查询。方法包括:第一节点获取第一查询请求,第一查询请求用于请求查询第一业务,第一节点为分布式存储集群中的源节点;第一节点根据第一业务,确定分布式存储集群中的第一查询路径;第一节点根据第一查询路径,确定第一查询指示信息,其中,第一查询指示信息中包括:第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点;第一节点向第一查询路径对应的节点发送第一查询指示信息。
Description
技术领域
本申请涉及大数据领域,尤其涉及一种基于分布式存储的数据查询方法及装置。
背景技术
目前,随着数据规模越来越大,采用分布式存储是解决目前大规模数据存储的主要技术手段。具体而言,分布式存储会按一定存储规则,充分利用每个节点的存储能力,将数据分别存储在各个节点中。如果需要查询数据,再通过遍历,从相应节点中读取数据。
但是,分布式存储的问题在于,由于节点数量较多,在查询数据时,通常不知道数据存储在哪个节点,从而需要逐一遍历每个节点,导致数据查询的耗时较长,数据查询的效率较低。
发明内容
本申请实施例提供一种基于分布式存储的数据查询方法及装置,用以实现快速且高效的进行数据查询。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供了一种基于分布式存储的数据查询方法,所述方法包括:第一节点获取第一查询请求,所述第一查询请求用于请求查询第一业务,所述第一节点为分布式存储集群中的源节点;所述第一节点根据所述第一业务,确定所述分布式存储集群中的第一查询路径;所述第一节点根据所述第一查询路径,确定第一查询指示信息,其中,所述第一查询指示信息中包括:所述第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;所述第一节点向所述第一查询路径对应的节点发送所述第一查询指示信息。
基于第一方面所述的方法可知,通过分析业务的类型,确定出待查询的数据最有可能存储的节点,并确定这些节点对应的第一查询路径。如此,向第一查询路径对应的节点发送第一查询指示信息,便可以实现遍历第一查询路径对应的节点,从而实现快速且高效的进行数据查询。此外,由于第一查询指示信息中包括第一查询路径中的每个非叶子节点的信息,而一个非叶子节点的信息又包括该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,从而形成一个递归结构。这样,基于该递归结构,便可以准确地遍历第一查询路径对应的节点。
一种可能的设计方案中,一个非叶子节点的标识包括多个比特,每个比特用于指示该非叶子节点的潜在子节点中对应的一个子节点是否为该非叶子节点的非叶子子节点,以避免误指示和误确定。
一种可能的设计方案中,一个非叶子节点的潜在子节点包括:该非叶子节点连接的所有节点,该所有节点包括:该非叶子节点的上游节点和所述非叶子节点的下游节点。
一种可能的设计方案中,所述第一查询路径中的每个非叶子节点的信息为协议预定义的长度,或者所述第一查询路径中的每个非叶子节点的信息的位置根据所述第一查询指示信息中的寻址字段确定,以便非叶子节点能够从第一查询指示信息中准确地找到自身的信息。
一种可能的设计方案中,所述第一节点根据所述第一业务,确定所述分布式存储集群中的第一查询路径,包括:所述第一节点根据所述第一业务的业务类型,从所述分布式存储集群中确定出存储类型与所述业务类型相似的所有节点;所述第一节点根据所述所有节点的拓扑结构,确定所述所有节点对应的所述第一查询路径。
一种可能的设计方案中,在所述第一节点向所述第一查询路径对应的节点发送所述第一查询指示信息之后,所述方法还包括:若所述第一节点确定所述第一查询指示信息未命中,则所述第一节点根据所述第一业务,确定所述分布式存储集群中的第二查询路径,所述第二查询路径中包括的节点与所述第一查询路径中包括的节点不同;所述第一节点根据所述第二查询路径,确定第二查询指示信息,其中,所述第二查询指示信息中包括:所述第二查询路径中非叶子节点的信息;所述第一节点向所述第二查询路径对应的节点发送所述第二查询指示信息。也就是说,在一次查询未命中的情况下,第一节点可以按照相似度从高至低的顺序,继续执行查询,直至能够高效地找到第一业务对应的数据。
第二方面,本申请实施例提供了一种基于分布式存储的数据查询方法,所述方法包括:第一非叶子节点接收来自第一节点的第一查询指示信息,其中,所述第一非叶子节点为所述第一查询路径中的子节点,所述第一查询指示信息中包括:所述第一查询路径中非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;所述第一非叶子节点根据所述第一查询指示信息,判断所述第一非叶子节点是否存储有第一业务的数据;若否,所述第一非叶子节点将所述第一查询指示信息除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询指示信息;所述第一非叶子节点向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询指示信息。如此,可实现删除冗余信息,提高数据传输效率。
第三方面,本申请实施例提供了一种基于分布式存储的数据查询装置,应用于第一节点,所述装置包括:收发模块,用于获取第一查询请求,所述第一查询请求用于请求查询第一业务,所述第一节点为分布式存储集群中的源节点;处理模块,用于根据所述第一业务,确定所述分布式存储集群中的第一查询路径;根据所述第一查询路径,确定第一查询指示信息,其中,所述第一查询指示信息中包括:所述第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;所述收发模块,还用于向所述第一查询路径对应的节点发送所述第一查询指示信息。
一种可能的设计方案中,一个非叶子节点的标识包括多个比特,每个比特用于指示该非叶子节点的潜在子节点中对应的一个子节点是否为该非叶子节点的非叶子子节点。
一种可能的设计方案中,一个非叶子节点的潜在子节点包括:该非叶子节点连接的所有节点,该所有节点包括:该非叶子节点的上游节点和所述非叶子节点的下游节点。
一种可能的设计方案中,所述第一查询路径中的每个非叶子节点的信息为协议预定义的长度,或者所述第一查询路径中的每个非叶子节点的信息的位置根据所述第一查询指示信息中的寻址字段确定。
一种可能的设计方案中,所述处理模块,还用于根据所述第一业务的业务类型,从所述分布式存储集群中确定出存储类型与所述业务类型相似的所有节点;所述第一节点根据所述所有节点的拓扑结构,确定所述所有节点对应的所述第一查询路径。
一种可能的设计方案中,所述处理模块,还用于在所述收发模块向所述第一查询路径对应的节点发送所述第一查询指示信息之后,若所述处理模块确定所述第一查询指示信息未命中,则根据所述第一业务,确定所述分布式存储集群中的第二查询路径,所述第二查询路径中包括的节点与所述第一查询路径中包括的节点不同;以及根据所述第二查询路径,确定第二查询指示信息,其中,所述第二查询指示信息中包括:所述第二查询路径中非叶子节点的信息;之后,所述收发模块还用于向所述第二查询路径对应的节点发送所述第二查询指示信息。
第四方面,本申请实施例提供了一种基于分布式存储的数据查询装置应用于第一非叶子节点,所述装置包括:收发模块,用于接收来自第一节点的第一查询指示信息,其中,所述第一非叶子节点为所述第一查询路径中的子节点,所述第一查询指示信息中包括:所述第一查询路径中非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;处理模块,用于根据所述第一查询指示信息,判断所述第一非叶子节点是否存储有第一业务的数据;若否,所述处理模块将所述第一查询指示信息除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询指示信息;所述收发模块,还用于向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询指示信息。
第五方面,本申请实施例提供了一种基于分布式存储的数据查询方法,所述方法包括:第二非叶子节点接收来自第一节点的第二查询指示信息,其中,所述第二非叶子节点为所述第二查询路径中的子节点,所述第二查询指示信息中包括:所述第二查询路径中每个非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;所述第二非叶子节点根据所述第二查询指示信息,判断所述第二非叶子节点是否存储有第二业务的数据;若否,所述第二非叶子节点将所述第二查询指示信息除所述第二非叶子节点的信息以外的其他信息剥离,得到更新的第二查询指示信息;所述第二非叶子节点向所述第二非叶子节点的非叶子子节点发送所述更新的第二查询指示信息。
第六方面,本申请实施例提供了一种基于分布式存储的数据查询装置,应用于第二非叶子节点,所述装置包括:收发模块,用于接收来自第一节点的第二查询指示信息,其中,所述第二非叶子节点为所述第二查询路径中的子节点,所述第二查询指示信息中包括:所述第二查询路径中每个非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;处理模块,用于根据所述第二查询指示信息,判断所述第二非叶子节点是否存储有第二业务的数据;若否,所述处理模块将所述第二查询指示信息除所述第二非叶子节点的信息以外的其他信息剥离,得到更新的第二查询指示信息;所述收发模块,还用于向所述第二非叶子节点的非叶子子节点发送所述更新的第二查询指示信息。
第七方面,提供了一种基于分布式存储的数据查询装置。该基于分布式存储的数据查询装置包括:处理器和存储器;该存储器用于存储计算机程序,当该处理器执行该计算机程序时,以使该装置执行第一方面、第二方面或第五方面所述的方法。
在一种可能的设计方案中,第七方面所述的装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第七方面所述的装置与其他装置通信。
在本申请中,第七方面所述的装置可以为网络设备,或者可设置于该网络设备中的芯片(系统)或其他部件或组件,或者包含该网络设备的装置。
此外,第七方面所述的装置的技术效果可以参考第一方面或第二方面所述的方法的技术效果,此处不再赘述。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质上存储有程序代码,当所述程序代码被所述计算机运行时,执行如第一方面、第二方面或第五方面所述的方法。
附图说明
图1为本申请实施例提供的一种基于分布式存储的数据查询系统的架构示意图一;
图2为本申请实施例提供的一种基于分布式存储的数据查询方法的流程图;
图3为本申请实施例提供的一种基于分布式存储的数据查询装置的结构示意图一;
图4为本申请实施例提供的一种基于分布式存储的数据查询装置的结构示意图二。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
请参阅图1,本申请实施例提供了一种基于分布式存储的数据查询系统,该基于分布式存储的数据查询系统可以包括由多个节点构成的分布式存储集群,例如第一节点、第一非叶子节点以及第二非叶子节点等等。上述节点可以是终端,例如服务器、如数据服务器、网络服务器等,可以是单个服务器,或者也可以是服务器集群。该终端设备也可以称为用户装置、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。本申请的实施例中的终端设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车载终端、具有终端功能的RSU等。
下面将结合方法进行详细说明。
请参阅图2,本申请实施例提供了一种基于分布式存储的数据查询方法。该方法可以适用于图1所示的系统中的第一节点和第一非叶子节点之间的通信。该方法的流程包括:
S201,第一节点获取第一查询请求。
其中,第一节点可以为分布式存储集群中的源节点。该第一查询请求可以来自应用层的客户端,用于请求查询第一业务。
S202,第一节点根据第一业务,确定分布式存储集群中的第一查询路径。
其中,第一节点可以根据第一业务的业务类型,从分布式存储集群中确定出存储类型与业务类型最为相似的所有节点,然后根据所有节点的拓扑结构,确定所有节点对应的第一查询路径。
S203,第一节点根据第一查询路径,确定第一查询指示信息。
其中,第一查询指示信息中包括:第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往非叶子子节点。
一种可能的设计方案中,一个非叶子节点的标识包括多个比特,每个比特用于指示该非叶子节点的潜在子节点中对应的一个子节点是否为该非叶子节点的非叶子子节点,以避免误指示和误确定。例如,当某个比特的取值为1时,则该比特用于指示非叶子节点的潜在子节点中对应的一个子节点为该非叶子节点的非叶子子节点,或者,当某个比特的取值为1时,则该比特用于指示非叶子节点的潜在子节点中对应的一个子节点不为该非叶子节点的非叶子子节点。
一种可能的设计方案中,一个非叶子节点的潜在子节点包括:该非叶子节点连接的所有节点,该所有节点包括:该非叶子节点的上游节点和非叶子节点的下游节点。
一种可能的设计方案中,第一查询路径中的每个非叶子节点的信息为协议预定义的长度,或者第一查询路径中的每个非叶子节点的信息的位置根据第一查询指示信息中的寻址字段确定,以便非叶子节点能够从第一查询指示信息中准确地找到自身的信息。
S204,第一节点向第一查询路径对应的节点发送第一查询指示信息。
S205,第一非叶子节点接收来自第一节点的第一查询指示信息。
S206,第一非叶子节点根据第一查询指示信息,判断第一非叶子节点是否存储有第一业务的数据。
S207,若否,第一非叶子节点将第一查询指示信息中除第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询指示信息。
其中,上述其他信息剥离是指第一查询指示信息中非第一非叶子节点的下游节点的信息,从而可以实现冗余信息的删除,提高数据传输效率。
S208,第一非叶子节点向第一非叶子节点的非叶子子节点发送更新的第一查询指示信息。
可选地,在一些可能的应用场景中,若第一节点确定第一查询指示信息未命中,则第一节点还可以根据第一业务,确定分布式存储集群中的第二查询路径。其中,第二查询路径中包括的节点与第一查询路径中包括的节点不同;例如,第一节点可以根据第一业务的业务类型,从分布式存储集群中除第一查询路径对应的节点以外的所有节点确定出存储类型与业务类型最相似的所有节点,从而根据该所有节点的拓扑结构,确定第二查询路径。然后,第一节点根据第二查询路径,确定第二查询指示信息。其中,第二查询指示信息中包括:第二查询路径中非叶子节点的信息。最后,第一节点可以向第二查询路径对应的节点发送第二查询指示信息。也就是说,在一次查询未命中的情况下,第一节点可以按照相似度从高至低的顺序,继续执行查询,直至能够高效地找到第一业务对应的数据。相应的,对于第二查询路径中的子节点,例如第二非叶子节点而言,第二非叶子节点接收来自第一节点的第二查询指示信息。第二非叶子节点根据第二查询指示信息,判断第二非叶子节点是否存储有第二业务的数据。若否,第二非叶子节点将第二查询指示信息除第二非叶子节点的信息以外的其他信息剥离,得到更新的第二查询指示信息;第二非叶子节点向第二非叶子节点的非叶子子节点发送更新的第二查询指示信息。
综上,根据上述方法可知,通过分析业务的类型,确定出待查询的数据最有可能存储的节点,并确定这些节点对应的第一查询路径。如此,向第一查询路径对应的节点发送第一查询指示信息,便可以实现遍历第一查询路径对应的节点,从而实现快速且高效的进行数据查询。此外,由于第一查询指示信息中包括第一查询路径中的每个非叶子节点的信息,而一个非叶子节点的信息又包括该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,从而形成一个递归结构。这样,基于该递归结构,便可以准确地遍历第一查询路径对应的节点。
请参阅图3,本实施例中还提供了一种基于分布式存储的数据查询装置300,该基于分布式存储的数据查询装置300包括:收发模块301和处理模块302。
一些实施例中,该基于分布式存储的数据查询装置300可以应用于上述第一节点。
收发模块301,用于获取第一查询请求,所述第一查询请求用于请求查询第一业务,所述第一节点为分布式存储集群中的源节点;处理模块302,用于根据所述第一业务,确定所述分布式存储集群中的第一查询路径;根据所述第一查询路径,确定第一查询指示信息,其中,所述第一查询指示信息中包括:所述第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;所述收发模块301,还用于向所述第一查询路径对应的节点发送所述第一查询指示信息。
一种可能的设计方案中,一个非叶子节点的标识包括多个比特,每个比特用于指示该非叶子节点的潜在子节点中对应的一个子节点是否为该非叶子节点的非叶子子节点。
一种可能的设计方案中,一个非叶子节点的潜在子节点包括:该非叶子节点连接的所有节点,该所有节点包括:该非叶子节点的上游节点和所述非叶子节点的下游节点。
一种可能的设计方案中,所述第一查询路径中的每个非叶子节点的信息为协议预定义的长度,或者所述第一查询路径中的每个非叶子节点的信息的位置根据所述第一查询指示信息中的寻址字段确定。
一种可能的设计方案中,所述处理模块302,还用于根据所述第一业务的业务类型,从所述分布式存储集群中确定出存储类型与所述业务类型相似的所有节点;所述第一节点根据所述所有节点的拓扑结构,确定所述所有节点对应的所述第一查询路径。
一种可能的设计方案中,所述处理模块302,还用于在所述收发模块301向所述第一查询路径对应的节点发送所述第一查询指示信息之后,若所述处理模块302确定所述第一查询指示信息未命中,则根据所述第一业务,确定所述分布式存储集群中的第二查询路径,所述第二查询路径中包括的节点与所述第一查询路径中包括的节点不同;以及根据所述第二查询路径,确定第二查询指示信息,其中,所述第二查询指示信息中包括:所述第二查询路径中非叶子节点的信息;之后,所述收发模块301还用于向所述第二查询路径对应的节点发送所述第二查询指示信息。
另一些实施例中,该基于分布式存储的数据查询装置300可以应用于上述第一非叶子节点。
收发模块301,用于接收来自第一节点的第一查询指示信息,其中,所述第一非叶子节点为所述第一查询路径中的子节点,所述第一查询指示信息中包括:所述第一查询路径中非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;处理模块302,用于根据所述第一查询指示信息,判断所述第一非叶子节点是否存储有第一业务的数据;若否,所述处理模块302将所述第一查询指示信息除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询指示信息;所述收发模块301,还用于向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询指示信息。
可选地,上述收发模块可以包括接收模块和发送模块。其中,接收模块用于实现所述的基于分布式存储的数据查询装置的接收功能。发送模块用于实现所述的基于分布式存储的数据查询装置的发送功能。
可选地,所述的基于分布式存储的数据查询装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得该基于分布式存储的数据查询装置可以执行上述图2所示的方法。
需要说明的是,所述的基于分布式存储的数据查询装置可以是终端设备,也可以是可设置于终端设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备的装置,本申请对此不做限定。
此外,所述的基于分布式存储的数据查询装置的技术效果可以参考上述的方法的技术效果,此处不再赘述。
下面结合图4,对基于分布式存储的数据查询装置400的各个构成部件进行具体的介绍:
其中,处理器401是基于分布式存储的数据查询装置400的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器401是一个或多个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specificintegrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
可选地,处理器401可以通过运行或执行存储在存储器402内的软件程序,以及调用存储在存储器402内的数据,执行基于分布式存储的数据查询装置400的各种功能。
在具体的实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图4中所示出的CPU0和CPU1。
在具体实现中,作为一种实施例,基于分布式存储的数据查询装置400也可以包括多个处理器,例如图4中所示的处理器401和处理器404。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
其中,存储器402用于存储执行本申请方案的软件程序,并由处理器401来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以和处理器401集成在一起,也可以独立存在,并通过基于分布式存储的数据查询装置400的接口电路(图4中未示出)与处理器401耦合,本申请实施例对此不作具体限定。
收发器403,用于与其他装置之间的通信。例如,基于分布式存储的数据查询装置400为网络设备,收发器403可以用于与终端设备通信,或者与另一个网络设备通信。
可选地,收发器403可以包括接收器和发送器(图4中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,收发器403可以和处理器401集成在一起,也可以独立存在,并通过基于分布式存储的数据查询装置400的接口电路(图4中未示出)与处理器401耦合,本申请实施例对此不作具体限定。
需要说明的是,图4中示出的装置400的结构并不构成对该基于分布式存储的数据查询装置的限定,实际的基于分布式存储的数据查询装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,装置400的技术效果可以参考上述方法实施例的方法的技术效果,此处不再赘述。
应理解,在本申请实施例中的处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行计算机指令或计算机程序时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a, b, c, a-b, a-c, b-c, 或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征字段可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random acceMM memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于分布式存储的数据查询方法,其特征在于,所述方法包括:
第一节点获取第一查询请求,所述第一查询请求用于请求查询第一业务,所述第一节点为分布式存储集群中的源节点;
所述第一节点根据所述第一业务,确定所述分布式存储集群中的第一查询路径;
所述第一节点根据所述第一查询路径,确定第一查询指示信息,其中,所述第一查询指示信息中包括:所述第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;
所述第一节点向所述第一查询路径对应的节点发送所述第一查询指示信息,其中,第一非叶子节点接收来到所述第一查询请求后, 如果所述第一非叶子节点根据所述第一查询请求,确定所述第一非叶子节点是否存储有第一业务的数据,则所述第一非叶子节点将所述第一查询请求除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询请求,并向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询请求。
2.根据权利要求1所述的方法,其特征在于,一个非叶子节点的标识包括多个比特,每个比特用于指示该非叶子节点的潜在子节点中对应的一个子节点是否为该非叶子节点的非叶子子节点。
3.根据权利要求1所述的方法,其特征在于,一个非叶子节点的潜在子节点包括:该非叶子节点连接的所有节点,该所有节点包括:该非叶子节点的上游节点和所述非叶子节点的下游节点。
4.根据权利要求1所述的方法,其特征在于,所述第一查询路径中的每个非叶子节点的信息为协议预定义的长度,或者所述第一查询路径中的每个非叶子节点的信息的位置根据所述第一查询指示信息中的寻址字段确定。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一节点根据所述第一业务,确定所述分布式存储集群中的第一查询路径,包括:
所述第一节点根据所述第一业务的业务类型,从所述分布式存储集群中确定出存储类型与所述业务类型相似的所有节点;
所述第一节点根据所述所有节点的拓扑结构,确定所述所有节点对应的所述第一查询路径。
6.根据权利要求5所述的方法,其特征在于,在所述第一节点向所述第一查询路径对应的节点发送所述第一查询指示信息之后,所述方法还包括:
若所述第一节点确定所述第一查询指示信息未命中,则所述第一节点根据所述第一业务,确定所述分布式存储集群中的第二查询路径,所述第二查询路径中包括的节点与所述第一查询路径中包括的节点不同;
所述第一节点根据所述第二查询路径,确定第二查询指示信息,其中,所述第二查询指示信息中包括:所述第二查询路径中非叶子节点的信息;
所述第一节点向所述第二查询路径对应的节点发送所述第二查询指示信息。
7.一种基于分布式存储的数据查询方法,其特征在于,所述方法包括:
第一非叶子节点接收来自第一节点的第一查询请求,其中,所述第一非叶子节点为所述第一查询路径中的子节点,所述第一查询指示信息中包括:所述第一查询路径中非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;
所述第一非叶子节点根据所述第一查询请求,判断所述第一非叶子节点是否存储有第一业务的数据;
若否,所述第一非叶子节点将所述第一查询请求除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询请求;
所述第一非叶子节点向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询请求。
8.一种基于分布式存储的数据查询装置,其特征在于,应用于第一节点,所述装置包括:
收发模块,用于获取第一查询请求,所述第一查询请求用于请求查询第一业务,所述第一节点为分布式存储集群中的源节点;
处理模块,用于根据所述第一业务,确定所述分布式存储集群中的第一查询路径;根据所述第一查询路径,确定第一查询指示信息,其中,所述第一查询指示信息中包括:所述第一查询路径中的每个非叶子节点的信息;一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;
所述收发模块,还用于向所述第一查询路径对应的节点发送所述第一查询指示信息,其中,第一非叶子节点接收来到所述第一查询请求后, 如果所述第一非叶子节点根据所述第一查询请求,确定所述第一非叶子节点是否存储有第一业务的数据,则所述第一非叶子节点将所述第一查询请求除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询请求,并向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询请求。
9.一种基于分布式存储的数据查询装置,其特征在于,应用于第一非叶子节点,所述装置包括:
收发模块,用于接收来自第一节点的第一查询请求,其中,所述第一非叶子节点为所述第一查询路径中的子节点,所述第一查询指示信息中包括:所述第一查询路径中非叶子节点的信息;其中,一个非叶子节点的信息包括:该非叶子节点的标识以及该非叶子节点的非叶子子节点的信息,一个非叶子子节点为该非叶子节点的潜在子节点中的至少部分子节点,一个非叶子节点的信息用于指示查询指示信息需要发往所述非叶子节点,一个非叶子子节点的信息用于指示查询指示信息需要发往所述非叶子子节点;
处理模块,用于根据所述第一查询请求,判断所述第一非叶子节点是否存储有第一业务的数据;若否,所述处理模块将所述第一查询请求除所述第一非叶子节点的信息以外的其他信息剥离,得到更新的第一查询请求;
所述收发模块,还用于向所述第一非叶子节点的非叶子子节点发送所述更新的第一查询请求。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有程序代码,当所述程序代码被所述计算机运行时,执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224270.7A CN113672669B (zh) | 2021-10-21 | 2021-10-21 | 基于分布式存储的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111224270.7A CN113672669B (zh) | 2021-10-21 | 2021-10-21 | 基于分布式存储的数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672669A CN113672669A (zh) | 2021-11-19 |
CN113672669B true CN113672669B (zh) | 2021-12-31 |
Family
ID=78550718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111224270.7A Active CN113672669B (zh) | 2021-10-21 | 2021-10-21 | 基于分布式存储的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672669B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627362B (zh) * | 2023-07-26 | 2023-09-22 | 大汉电子商务有限公司 | 一种基于分布式储存的财务数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和系统 |
CN104683239A (zh) * | 2015-03-09 | 2015-06-03 | 东北大学 | 一种面向互联网的节能型QoS路由方法 |
CN110266766A (zh) * | 2019-05-22 | 2019-09-20 | 深圳华科云动力科技有限公司 | 一种抗攻击分布式网络节点的构建方法、系统及终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8285710B2 (en) * | 2008-10-09 | 2012-10-09 | International Business Machines Corporation | Automated query path reporting in distributed databases |
-
2021
- 2021-10-21 CN CN202111224270.7A patent/CN113672669B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和系统 |
CN104683239A (zh) * | 2015-03-09 | 2015-06-03 | 东北大学 | 一种面向互联网的节能型QoS路由方法 |
CN110266766A (zh) * | 2019-05-22 | 2019-09-20 | 深圳华科云动力科技有限公司 | 一种抗攻击分布式网络节点的构建方法、系统及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113672669A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186653B (zh) | 辅助查询方法和设备、查询方法和设备及命名查询系统 | |
CN107295071A (zh) | 共享车辆信息处理方法、装置、服务器、终端及存储介质 | |
EP3817333B1 (en) | Method and system for processing requests in a consortium blockchain | |
US11107079B2 (en) | Methods, systems, apparatuses and devices for verifying credibility of consortium blockchain | |
CN107391632B (zh) | 数据库存储处理方法、装置、计算设备及计算机存储介质 | |
CN110474903B (zh) | 可信数据获取方法、装置及区块链节点 | |
CN106339267B (zh) | 一种对象查询方法及服务端 | |
US20210084574A1 (en) | Method for identifying a type of a wireless hotspot and a network device thereof | |
CN113672669B (zh) | 基于分布式存储的数据查询方法及装置 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN107451461B (zh) | 移动设备的设备指纹处理方法、装置、服务器及存储介质 | |
CN109600254B (zh) | 全链路日志的生成方法及相关系统 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN115525793A (zh) | 由计算机实现的方法、系统及存储介质 | |
CN114500368B (zh) | 数据传输方法和装置及采用该装置的路由器 | |
CN111767481A (zh) | 访问处理方法、装置、设备和存储介质 | |
CN112115521A (zh) | 数据访问方法及装置 | |
JP2014524210A (ja) | 可変長ノンスの生成 | |
CN114661762A (zh) | 嵌入式数据库的查询方法、装置、存储介质及设备 | |
CN112256706B (zh) | 一种handle引用状态的确定方法及装置 | |
CN113742537B (zh) | 基于产品树的构建方法及装置 | |
JP2020057240A (ja) | 所属地分析用データ構築システム、所属地分析用データ構築プログラム、及び所属地分析システム | |
CN110347632B (zh) | 一种通信方法和装置 | |
CN115857836B (zh) | 基于大数据的信息储存方法及装置 | |
CN116501448B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |