CN113132267B - 一种分布式系统、数据聚合方法和计算机可读存储介质 - Google Patents

一种分布式系统、数据聚合方法和计算机可读存储介质 Download PDF

Info

Publication number
CN113132267B
CN113132267B CN201911418011.0A CN201911418011A CN113132267B CN 113132267 B CN113132267 B CN 113132267B CN 201911418011 A CN201911418011 A CN 201911418011A CN 113132267 B CN113132267 B CN 113132267B
Authority
CN
China
Prior art keywords
query
target
node
nodes
fragment
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
Application number
CN201911418011.0A
Other languages
English (en)
Other versions
CN113132267A (zh
Inventor
于平
韩洪伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN201911418011.0A priority Critical patent/CN113132267B/zh
Publication of CN113132267A publication Critical patent/CN113132267A/zh
Application granted granted Critical
Publication of CN113132267B publication Critical patent/CN113132267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/827Aggregation of resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式系统,其中:协调节点用于:解析查询请求以确定查询请求指向的目标索引分片,获取目标索引分片的分片信息,确定本地存储目标索引分片的查询节点,作为目标节点,根据分片信息构建查询子请求,并将查询子请求发送至目标节点;目标节点用于:接收并解析查询子请求以得到分片信息,根据分片信息定位出本地存储的目标索引分片,运行目标索引分片以得到查询子请求所请求的查询结果,在本地存储的所有目标索引分片不唯一时,聚合所有目标索引分片的查询结果得到第一聚合结果,并将第一聚合结果返回协调节点;协调节点还用于:接收目标节点返回的第一聚合结果,并聚合若干目标节点返回的所有第一聚合结果。

Description

一种分布式系统、数据聚合方法和计算机可读存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种分布式系统、数据聚合方法、计算机设备和计算机可读存储介质。
背景技术
ElasticSearch是基于Apache Lucene的分布式检索系统,其可以通过索引实现检索功能。ElasticSearch的检索流程分为query阶段和fetch阶段,query阶段用于根据查询请求查询到doc id列表,fetch阶段用于根据doc id列表获取doc文档。其中,在ElasticSearch系统中,一个索引可以由若干索引分片组成,且ElasticSearch系统中包括多个查询节点,每个查询节点中存储有多个索引分片,接收到查询请求的查询节点又称为协调节点。
在query阶段,协调节点接收查询请求之后,确定查询请求对应的索引分片,并根据每个索引分片的分片信息构建新的查询请求下发给存储该索引分片的查询节点,查询节点接收到该新的查询请求后,根据对应的索引分片执行查询工作,并将每一次的查询结果即doc id列表返回给协调节点,在所有的doc id列表均返回以后,协调节点聚合这些docid列表,然后根据聚合结果执行fetch阶段。
然而,发明人研究发现,现有技术中至少存在如下缺陷:在查询请求对应的索引分片过多时,由协调节点聚合所有索引分片的查询结果,会对协调节点的内存造成巨大的压力,大大增加了协调节点不稳定的因素,严重时甚至会导致协调节点挂掉。
针对现有技术的ElasticSearch检索中不考虑协调节点内存压力,可能引起协调节点不稳定或挂掉的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的在于提供了一种分布式系统、数据聚合方法、计算机设备和计算机可读存储介质,能够解决现有技术的ElasticSearch检索中不考虑协调节点内存压力可能引起协调节点不稳定或挂掉的技术问题。
本发明的第一个方面提供了一种分布式系统,所述分布式系统包括若干查询节点,所述查询节点用于接收用户发送的查询请求,且接收所述查询请求的查询节点称为协调节点,其中:所述协调节点用于:解析所述查询请求以确定所述查询请求指向的目标索引分片,获取所述目标索引分片的分片信息,确定本地存储所述目标索引分片的查询节点,作为目标节点,根据所述分片信息构建查询子请求,并将所述查询子请求发送至所述目标节点;所述目标节点用于:接收并解析所述查询子请求以得到所述分片信息,根据所述分片信息定位出本地存储的所述目标索引分片,运行所述目标索引分片以得到所述查询子请求所请求的查询结果,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点;所述协调节点还用于:接收所述目标节点返回的所述第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果。
本发明的第二个方面提供了一种数据聚合方法,所述方法包括:接收协调节点发送的查询请求,作为第一查询请求;解析所述第一查询请求以得到分片信息;根据所述分片信息定位出本地存储的目标索引分片;运行所述目标索引分片以得到所述第一查询请求所请求的查询结果;在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点。
可选地,解析所述第一查询请求以得到分片信息的步骤包括:解析所述第一查询请求以得到所述分片信息和分片数量,其中,所述分片数量为本地存储的所有所述目标索引分片的数量;相应地,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤包括:在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果。
可选地,在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果的步骤包括:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
可选地,所述方法还包括:在接收的所有第一所述查询请求不唯一时,统计接收的所有第一所述查询请求的数量;判断接收的所有所述第一查询请求的数量是否大于预设数量阈值;在接收的所有第一所述查询请求的数量大于所述预设数量阈值时,同时解析所述预设数量阈值个所述第一查询请求,且在得到任一所述第一查询请求所请求的查询结果之后,继续解析接收的所有所述第一查询请求中剩余的任一所述第一查询请求。
本发明的第三个方面提供了一种数据聚合方法,所述方法包括:接收用户发送的查询请求,作为第二查询请求;解析所述第二查询请求以确定所述第二查询请求指向的目标索引分片;获取所述目标索引分片的分片信息;确定本地存储所述目标索引分片的节点,作为目标节点;根据所述分片信息构建第一查询请求,并将所述第一查询请求发送至所述目标节点;接收所述目标节点返回的第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果,其中,所述第一聚合结果是通过本发明的第一个方面提供的任一实施例所述的数据聚合方法得到的。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计所述目标节点本地存储的所有所述目标索引分片的数量,作为分片数量;相应地,根据所述分片信息构建第一查询请求的步骤包括:根据所述分片信息和所述分片数量构建所述第一查询请求。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计确定出的所有所述目标节点的数量,作为节点数量;相应地,聚合若干所述目标节点返回的所有所述第一聚合结果的步骤包括:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量;在返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计确定出的所有所述目标节点的数量,作为节点数量;相应地,聚合若干所述目标节点返回的所有所述第一聚合结果的步骤包括:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量,在返回所述第一聚合结果的目标节点的数量小于所述节点数量时,判断距离接收所述第二查询请求的时间的时间间隔是否大于等于预设时间阈值,在所述时间间隔大于等于所述预设时间阈值时,聚合接收的所有所述第一聚合结果。
本发明的第四个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的数据聚合方法。
本发明的第五个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的数据聚合方法。
本发明提供的分布式系统、数据聚合方法和计算机可读存储介质,协调节点根据目标索引分片的分片信息构建查询子请求,并将查询子请求发送至本地存储目标索引分片的目标节点,在目标节点本地存储的目标索引分片不唯一时,目标节点不会如现有技术那般查询到一个查询结果便向协调节点返回一个查询结果,而是先在本地将所有的查询结果做一个中间聚合得到第一聚合结果,进而将该第一聚合结果一次性返回协调节点,然后协调节点会在本地聚合这些中间结果即第一聚合结果。本发明由原来的一次聚合变成至少两次聚合,将聚合压力分摊至各个目标节点,即将压力由原来的一个节点承担分散为由多个节点承担,降低了协调节点的内存压力,降低了协调节点因内存不足而引发不稳定性带来的问题,同时也极大地降低了协调节点挂掉的风险。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性示出了根据本发明实施例一的数据聚合系统的框图;
图2示意性示出了根据本发明实施例二的数据聚合方法的流程图;
图3示意性示出了根据本发明实施例三的数据聚合方法的流程图;
图4示意性示出了根据本发明实施例四的数据聚合装置的框图;
图5示意性示出了根据本发明实施例五的数据聚合装置的框图;
图6示意性示出了根据本发明实施例六的适于实现实施例二的数据聚合方法和/或实施例三的数据聚合方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
ElasticSearch是基于Apache Lucene的分布式检索系统,该ElasticSearch可以包括多个查询节点,每个查询节点均可以接收查询请求,且接收到查询请求的查询节点又可称为协调节点。ElasticSearch的索引可以包括若干分片,每个分片又可以称为索引分片,且每个索引分片可以有一个主索引分片和一个副索引分片。在ElasticSearch的每个查询节点中,可以存储有多个主索引分片和多个副索引分片,且属于同一索引分片的主索引分片和副索引分片存在不同的查询节点中。由于每个查询节点是一个ElasticSearch实例,且一个查询节点通常运行在一个隔离的容器或虚拟机中,因此在ElasticSearch集群的每台服务器上,可以设置有若干查询节点。发明人在使用ElasticSearch执行查询的过程中发现,现有技术中,在query阶段,每个查询节点接收到协调节点发送的查询指令后,会将查询指令对应的查询结果返回给协调节点,且在一个查询节点接收到由协调节点发送的多个查询指令后,该查询节点也会分别返回各个查询指令对应的查询结果,这样,在协调节点给多个查询节点中每个查询节点均发送了多个查询指令后,协调节点需要在接收所有的查询结果之后,将这些查询结果进行聚合然后返给用户,这种操作方式会对协调节点的内存造成巨大的压力,大大增加了协调节点不稳定的因素,严重时甚至会导致协调节点挂掉。基于此,发明人研究出一种分布式系统、数据聚合方法和计算机可读存储介质,能够解决上述缺陷,具体实现方法将在以下实施例中详细描述,且以下实施例序号仅仅为了描述,并不代表实施例的优劣。
实施例一
图1示意性示出了根据本发明实施例一的数据聚合系统的框图,如图1所示,该分布式系统可以包括若干查询节点101,所述查询节点101用于接收用户发送的查询请求,且接收所述查询请求的查询节点101称为协调节点102,其中:
所述协调节点102用于:解析所述查询请求以确定所述查询请求指向的目标索引分片,获取所述目标索引分片的分片信息,确定本地存储所述目标索引分片的查询节点101,作为目标节点103,根据所述分片信息构建查询子请求,并将所述查询子请求发送至所述目标节点103。
其中,目标节点103也是一个查询节点101。
本实施例中,若查询请求中携带了索引的标号,则协调节点102可以从预先配置的全局表中确定标号对应的索引有哪些索引分片,然后将这些索引分片确定为目标索引分片;若查询请求中未携带索引的标号,则协调节点102可以从预先配置的全局表中确定所有索引对应的索引分片,然后将所有的索引分片都确定为目标索引分片。
进一步,对于任一目标索引分片,协调节点102可以从全局表中获取该目标索引分片的分片信息,然后根据分片信息构建一个查询子请求,同时,协调节点102还可以确定本地存储该目标索引分片的查询节点101,作为一个目标节点103,具体可以从全局表中确定哪个查询节点101的本地存储了该目标索引分片,然后协调节点102可以将构建的该查询子请求发送至该目标节点103。
其中,如果是协调节点102本身存储了该目标索引分片,也可将查询子请求发送给自己。
所述目标节点103用于:接收并解析所述查询子请求以得到所述分片信息,根据所述分片信息定位出本地存储的所述目标索引分片,运行所述目标索引分片以得到所述查询子请求所请求的查询结果,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点102。
本实施例中,目标节点103接收到查询子请求之后,解析该查询子请求得到查询子请求携带的分片信息,然后根据分片信息定位出本地存储的目标索引分片,并运行该目标索引分片可以得到一个查询结果,查询结果例如为doc id列表。其中,每个查询子请求只能携带一个目标索引分片的分片信息,也即一个查询子请求只能用于定位一个目标索引分片。
若查询请求指向的目标索引分片有多个,且同一个目标节点103本地存储了N个目标索引分片,则协调节点102会向该目标节点103发送N个查询子请求,目标节点103也会得到N个查询结果,N为大于1的整数。此种情况下,该目标节点103会聚合所有目标索引分片的查询结果(如聚合N个查询结果)得到第一聚合结果,然后将第一聚合结果返给协调节点102。
所述协调节点102还用于:接收所述目标节点103返回的所述第一聚合结果,并聚合若干所述目标节点103返回的所有所述第一聚合结果。
协调节点102接收每个目标节点103返回的第一聚合结果,并且在存在多个目标节点103时,协调节点102可以聚合两个或者两个以上的目标节点103返回的第一聚合结果。进一步,协调节点102还可以将聚合这些第一聚合结果后的得到的第二聚合结果返回给发送查询请求的用户,以使用户基于第二聚合结果继续发送用于查询doc文档的查询请求。
本发明提供的分布式系统,协调节点102根据目标索引分片的分片信息构建查询子请求,并将查询子请求发送至本地存储目标索引分片的目标节点103,在目标节点103本地存储的目标索引分片不唯一时,目标节点103不会如现有技术那般查询到一个查询结果便向协调节点102返回一个查询结果,而是先在本地将所有的查询结果做一个中间聚合得到第一聚合结果,进而将该第一聚合结果一次性返回协调节点102,然后协调节点102会在本地聚合这些中间结果即第一聚合结果。本发明由原来的一次聚合变成至少两次聚合,将聚合压力分摊至各个目标节点103,即将压力由原来的一个节点承担分散为由多个节点承担,降低了协调节点102的内存压力,降低了协调节点102因内存不足而引发不稳定性带来的问题,同时也极大地降低了协调节点102挂掉的风险。
可选地,为了让目标节点103知道何时聚合查询结果,协调节点102还会统计目标节点103本地存储的所有目标索引分片的数量,然后将该数量作为节点数量与分片信息一起构建查询子请求。具体地,协调节点102还用于:在确定本地存储所述目标索引分片的节点,作为目标节点103的步骤之后,统计所述目标节点103本地存储的所有所述目标索引分片的数量,作为分片数量;相应地,协调节点102在执行根据所述分片信息构建查询子请求的步骤时,还用于:根据所述分片信息和所述分片数量构建所述查询子请求。
相应地,目标节点103在执行解析所述查询子请求以得到所述分片信息的步骤时,还用于:解析所述查询子请求以得到所述分片信息和所述分片数量;相应地,目标节点103在执行在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤时,还用于:在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果。
进一步,目标节点103在执行在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结的步骤时,还用于:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
本实施例中,协调节点102为了让目标节点103明确知道在何种情况下可以执行聚合操作,会确定目标节点103本地存储的目标索引分片的数量,作为节点数量,然后协调节点102根据每个分片信息和分片数量构建一个查询子请求,目标节点103解析查询子请求可得知本地存储的目标索引分片的数量,然后目标节点103统计本地的查询结果,每得到一个查询结果,目标节点103会将统计数累加1,待统计数等于分片数量时,目标节点103便开始执行聚合操作。其中,目标节点103执行聚合操作的前提是分片数量大于1。
本实施例通过协调节点102和目标节点103之间的交互,可以准确地实现在目标节点103执行中间聚合的目的,进而达到降低协调节点102内存压力的效果。
可选地,针对一个查询请求对应的所有查询子请求,当目标节点103接收到多个这样的查询子请求时,若是目标节点103同时开始执行这些查询子请求可能会导致目标节点103的处理压力瞬间增大,从而引发目标节点103不稳定的问题,本实施例还可以预先设置一个预设数量阈值,若目标节点103接收这些查询子请求的数量大于等于预设数量阈值,则只允许同时处理预设数量阈值个的查询子请求,并且当一个查询子请求执行完成后,可以再执行剩余的任一个查询子请求,即目标节点103只需保证同时执行针对一个查询请求的预设数量阈值个查询子请求即可。具体地,目标节点103还用于:在接收的所有所述查询子请求不唯一时,统计接收的所有所述查询子请求的数量;判断接收的所有所述查询子请求的数量是否大于预设数量阈值;在接收的所有所述查询子请求的数量大于所述预设数量阈值时,同时解析所述预设数量阈值个所述查询子请求,且在得到任一所述查询子请求所请求的查询结果之后,继续解析接收的所有所述查询子请求中剩余的任一所述查询子请求。
可选地,协调节点102还用于:在确定本地存储所述目标索引分片的节点,作为目标节点103的步骤之后,统计确定出的所有所述目标节点103的数量,作为节点数量;相应地,协调节点102在执行聚合若干所述目标节点103返回的所有所述第一聚合结果的步骤时,还用于:判断返回所述第一聚合结果的目标节点103的数量是否等于所述节点数量;在返回所述第一聚合结果的目标节点103的数量等于所述节点数量时,聚合所有所述目标节点103返回的所有所述第一聚合结果。
本实施例中,协调节点102在等待所有的目标节点103均返回第一聚合结果之后,才执行最终的聚合操作,此时协调节点102需要统计确定的所有目标节点103的数量,作为节点数量,由于每个目标节点103会在本地做一次中间聚合并将中间聚合得到的第一聚合结果一次性返回协调节点102,因此在协调节点102获知返回第一聚合结果的目标节点103的数量等于节点数量时,可以确定所有的目标节点103均返回了结果,此时可以执行最终聚合操作,即将所有目标节点103的第一聚合结果进行聚合。
可选地,为了避免用户长时间等待,协调节点102还可以分批次聚合第一聚合结果,并分批次向用户返回聚合的第一聚合结果。具体地,协调节点102在执行聚合若干所述目标节点103返回的所有所述第一聚合结果的步骤时,还用于:在返回所述第一聚合结果的目标节点103的数量小于所述节点数量时,判断距离接收所述查询请求的时间的时间间隔是否大于等于预设时间阈值,在所述时间间隔大于等于所述预设时间阈值时,聚合接收的所有所述第一聚合结果。
本实施例中,即便只有一部分目标节点103返回了第一聚合结果,但是为了避免用户长时间等待,协调节点102一旦当前时间判定距离接收查询请求的时间的时间间隔大于等于预设时间阈值,便开始聚合当前接收到的所有第一聚合结果,然后返给用户。且在接收所有的第一聚合结果之后,再做最终的聚合,并将最终的准确地结果返给用户。
实施例二
本发明的实施例二提供了一种数据聚合方法,该数据聚合方法的部分步骤与上述实施例一中的步骤对应相同,这部分步骤在该实施例中不再赘述,具体可参考上述实施例一。具体地,图2示意性示出了根据本发明实施例二的数据聚合方法的流程图,如图2所示,该实施例二所述的数据聚合方法可以包括步骤S21~步骤S25,其中:
步骤S21,接收协调节点发送的查询请求,作为第一查询请求。
步骤S22,解析所述第一查询请求以得到分片信息。
步骤S23,根据所述分片信息定位出本地存储的目标索引分片。
步骤S24,运行所述目标索引分片以得到所述第一查询请求所请求的查询结果。
步骤S25,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点。
可选地,解析所述第一查询请求以得到分片信息的步骤包括:解析所述第一查询请求以得到所述分片信息和分片数量,其中,所述分片数量为本地存储的所有所述目标索引分片的数量;相应地,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤包括:在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果。
可选地,在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果的步骤包括:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
可选地,在接收的所有第一所述查询请求不唯一时,统计接收的所有第一所述查询请求的数量;判断接收的所有所述第一查询请求的数量是否大于预设数量阈值;在接收的所有第一所述查询请求的数量大于所述预设数量阈值时,同时解析所述预设数量阈值个所述第一查询请求,且在得到任一所述第一查询请求所请求的查询结果之后,继续解析接收的所有所述第一查询请求中剩余的任一所述第一查询请求。
实施例三
本发明的实施例三提供了一种数据聚合方法,该数据聚合方法的部分步骤与上述实施例一中的步骤对应相同,这部分步骤在该实施例中不再赘述,具体可参考上述实施例一。具体地,图3示意性示出了根据本发明实施例三的数据聚合方法的流程图,如图3所示,该实施例三所述的数据聚合方法可以包括步骤S31~步骤S36,其中:
步骤S31,接收用户发送的查询请求,作为第二查询请求。
步骤S32,解析所述第二查询请求以确定所述第二查询请求指向的目标索引分片。
步骤S33,获取所述目标索引分片的分片信息。
步骤S34,确定本地存储所述目标索引分片的节点,作为目标节点。
步骤S35,根据所述分片信息构建第一查询请求,并将所述第一查询请求发送至所述目标节点。
步骤S36,接收所述目标节点返回的第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果,其中,所述第一聚合结果是通过实施例二所述的方法得到的。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计所述目标节点本地存储的所有所述目标索引分片的数量,作为分片数量;相应地,根据所述分片信息构建第一查询请求的步骤包括:根据所述分片信息和所述分片数量构建所述第一查询请求。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计确定出的所有所述目标节点的数量,作为节点数量;相应地,聚合若干所述目标节点返回的所有所述第一聚合结果的步骤包括:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量;在返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果。
可选地,在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计确定出的所有所述目标节点的数量,作为节点数量;相应地,聚合若干所述目标节点返回的所有所述第一聚合结果的步骤包括:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量,在返回所述第一聚合结果的目标节点的数量小于所述节点数量时,判断距离接收所述第二查询请求的时间的时间间隔是否大于等于预设时间阈值,在所述时间间隔大于等于所述预设时间阈值时,聚合接收的所有所述第一聚合结果。
实施例四
本发明的实施例四提供了一种数据聚合装置,该数据聚合装置与上述实施例二相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述与实施例二对应的实施例一。具体地,图4示意性示出了根据本发明实施例四的数据聚合装置的框图,如图4所示,该数据聚合装置400可以包括第一接收模块401、第一解析模块402、定位模块403、运行模块404和第一聚合模块405,其中:
第一接收模块401用于接收协调节点发送的查询请求,作为第一查询请求;
第一解析模块402用于解析所述第一查询请求以得到分片信息;
定位模块403用于根据所述分片信息定位出本地存储的目标索引分片;
运行模块404用于运行所述目标索引分片以得到所述第一查询请求所请求的查询结果;
第一聚合模块405用于在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点。
可选地,第一解析模块还用于:解析所述第一查询请求以得到所述分片信息和分片数量,其中,所述分片数量为本地存储的所有所述目标索引分片的数量;相应地,第一聚合模块在执行在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤时,还用于:在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果。
可选地,第一聚合模块在执行在所述分片数量大于1时,聚合所有所述目标索引分片的查询结果得到所述第一聚合结果的步骤时,还用于:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
可选地,所述装置还包括:第一统计模块,用于在接收的所有第一所述查询请求不唯一时,统计接收的所有第一所述查询请求的数量;判断模块,用于判断接收的所有所述第一查询请求的数量是否大于预设数量阈值;处理模块,用于在接收的所有第一所述查询请求的数量大于所述预设数量阈值时,同时解析所述预设数量阈值个所述第一查询请求,且在得到任一所述第一查询请求所请求的查询结果之后,继续解析接收的所有所述第一查询请求中剩余的任一所述第一查询请求。
实施例五
本发明的实施例五提供了一种数据聚合装置,该数据聚合装置与上述实施例三相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述与实施例三对应的实施例一。具体地,图5示意性示出了根据本发明实施例五的数据聚合装置的框图,如图5所示,该数据聚合装置500可以包括第二接收模块501、第二解析模块502、获取模块503、确定模块504、构建模块505和第二聚合模块506,其中:
第二接收模块501用于接收用户发送的查询请求,作为第二查询请求;
第二解析模块502用于解析所述第二查询请求以确定所述第二查询请求指向的目标索引分片;
获取模块503用于获取所述目标索引分片的分片信息;
确定模块504用于确定本地存储所述目标索引分片的节点,作为目标节点;
构建模块505用于根据所述分片信息构建第一查询请求,并将所述第一查询请求发送至所述目标节点;
第二聚合模块506用于接收所述目标节点返回的第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果,其中,所述第一聚合结果是实施例二所述的方法得到的。
可选地,所述装置还包括:第二统计模块,用于在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,统计所述目标节点本地存储的所有所述目标索引分片的数量,作为分片数量;相应地,构建模块在执行根据所述分片信息构建第一查询请求的步骤时,还用于:根据所述分片信息和所述分片数量构建所述第一查询请求。
可选地,所述装置还包括:第三统计模块,用于在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,统计确定出的所有所述目标节点的数量,作为节点数量;相应地,第二聚合模块在执行聚合若干所述目标节点返回的所有所述第一聚合结果的步骤时,还用于:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量;在返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果。
可选地,所述装置还包括:第四统计模块,用于在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,统计确定出的所有所述目标节点的数量,作为节点数量;相应地,第二聚合模块在执行聚合若干所述目标节点返回的所有所述第一聚合结果的步骤时,还用于:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量,在返回所述第一聚合结果的目标节点的数量小于所述节点数量时,判断距离接收所述第二查询请求的时间的时间间隔是否大于等于预设时间阈值,在所述时间间隔大于等于所述预设时间阈值时,聚合接收的所有所述第一聚合结果。其中,第四统计模块与第三统计模块是同一个模块。
实施例六
图6示意性示出了根据本发明实施例六的适于实现实施例二的数据聚合方法和/或实施例三的数据聚合方法的计算机设备的框图。本实施例中,计算机设备600可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备600至少包括但不限于:可通过系统总线相互通信连接的存储器601、处理器602、网络接口603。需要指出的是,图6仅示出了具有组件601-603的计算机设备600,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器603至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器601可以是计算机设备600的内部存储单元,例如该计算机设备600的硬盘或内存。在另一些实施例中,存储器601也可以是计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器601还可以既包括计算机设备600的内部存储单元也包括其外部存储设备。在本实施例中,存储器601通常用于存储安装于计算机设备600的操作系统和各类应用软件,例如实施例二的数据聚合方法和/或实施例三的数据聚合方法的程序代码等。此外,存储器601还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器602在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制计算机设备600的总体操作。例如执行与计算机设备600进行数据交互或者通信相关的控制和处理等的实施例二的数据聚合方法和/或实施例三的数据聚合方法的程序代码。
在本实施例中,存储于存储器601中的实施例二的数据聚合方法和/或实施例三的数据聚合方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器602)所执行,以完成本发明。
网络接口603可包括无线网络接口或有线网络接口,该网络接口603通常用于在计算机设备600与其他计算机设备之间建立通信链接。例如,网络接口603用于通过网络将计算机设备600与外部终端相连,在计算机设备600与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例七
本实施例七还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例二的数据聚合方法和/或实施例三的数据聚合方法。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
本发明上述实施例序号仅仅为了描述,并不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种分布式系统,其特征在于,所述分布式系统包括若干查询节点,所述查询节点用于接收用户发送的查询请求,且接收所述查询请求的查询节点称为协调节点,其中:
所述协调节点用于:解析所述查询请求以确定所述查询请求指向的目标索引分片,获取所述目标索引分片的分片信息,确定本地存储所述目标索引分片的查询节点,作为目标节点,根据所述分片信息构建查询子请求,并将所述查询子请求发送至所述目标节点;
所述目标节点用于:接收并解析所述查询子请求以得到所述分片信息,根据所述分片信息定位出本地存储的所述目标索引分片,运行所述目标索引分片以得到所述查询子请求所请求的查询结果,在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点;
所述协调节点还用于:接收所述目标节点返回的所述第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果;其中,即便返回所述第一聚合结果的目标节点的数量小于节点数量,但是协调节点一旦判定当前时间距离接收所述查询请求的时间的时间间隔大于等于预设时间阈值,便开始聚合当前接收到的所有第一聚合结果并返给用户;当协调节点判定返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果;所述节点数量为确定出的所有目标节点的数量;
所述目标节点在执行解析所述查询子请求以得到所述分片信息的步骤时,还用于:解析所述查询子请求以得到所述分片信息和所述分片数量;其中,每个查询子请求只能携带一个目标索引分片的分片信息,所述分片数量为所述目标节点本地存储的所有所述目标索引分片的数量;
所述目标节点在执行在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤时,还用于:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
2.一种数据聚合方法,其特征在于,应用于目标节点,所述方法包括:
接收协调节点发送的查询请求,作为第一查询请求;
解析所述第一查询请求以得到分片信息;
根据所述分片信息定位出本地存储的目标索引分片;
运行所述目标索引分片以得到所述第一查询请求所请求的查询结果;
在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果,并将所述第一聚合结果返回所述协调节点;其中,即便返回所述第一聚合结果的目标节点的数量小于节点数量,但是协调节点一旦判定当前时间距离接收第二查询请求的时间的时间间隔大于等于预设时间阈值,便开始聚合当前接收到的所有第一聚合结果并返给用户;当协调节点判定返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果;所述节点数量为本地存储所述第二查询请求指向的目标索引分片的所有目标节点的数量,所述第二查询请求为所述用户向所述协调节点发送的查询请求;
所述解析所述第一查询请求以得到分片信息的步骤包括:解析所述第一查询请求以得到所述分片信息和分片数量;其中,每个查询子请求只能携带一个目标索引分片的分片信息,所述分片数量为本地存储的所有所述目标索引分片的数量;
所述在本地存储的所有所述目标索引分片不唯一时,聚合所有所述目标索引分片的查询结果得到第一聚合结果的步骤包括:在所述分片数量大于1且得到的所有所述查询结果的数量等于所述分片数量时,聚合所有所述查询结果得到所述第一聚合结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在接收的所有第一所述查询请求不唯一时,统计接收的所有第一所述查询请求的数量;
判断接收的所有所述第一查询请求的数量是否大于预设数量阈值;
在接收的所有第一所述查询请求的数量大于所述预设数量阈值时,同时解析所述预设数量阈值个所述第一查询请求,且在得到任一所述第一查询请求所请求的查询结果之后,继续解析接收的所有所述第一查询请求中剩余的任一所述第一查询请求。
4.一种数据聚合方法,其特征在于,所述方法包括:
接收用户发送的查询请求,作为第二查询请求;
解析所述第二查询请求以确定所述第二查询请求指向的目标索引分片;
获取所述目标索引分片的分片信息;
确定本地存储所述目标索引分片的节点,作为目标节点;
根据所述分片信息构建第一查询请求,并将所述第一查询请求发送至所述目标节点;
接收所述目标节点返回的第一聚合结果,并聚合若干所述目标节点返回的所有所述第一聚合结果,其中,所述第一聚合结果是通过权利要求2至3任一项所述的方法得到的。
5.根据权利要求4所述的方法,其特征在于,
在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计所述目标节点本地存储的所有所述目标索引分片的数量,作为分片数量;
相应地,根据所述分片信息构建第一查询请求的步骤包括:根据所述分片信息和所述分片数量构建所述第一查询请求。
6.根据权利要求5所述的方法,其特征在于,
在确定本地存储所述目标索引分片的节点,作为目标节点的步骤之后,所述方法还包括:统计确定出的所有所述目标节点的数量,作为节点数量;
相应地,聚合若干所述目标节点返回的所有所述第一聚合结果的步骤包括:判断返回所述第一聚合结果的目标节点的数量是否等于所述节点数量;在返回所述第一聚合结果的目标节点的数量等于所述节点数量时,聚合所有所述目标节点返回的所有所述第一聚合结果。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求2至3任一项所述的方法和/或权利要求4至6任一项所述的方法。
8.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求2至3任一项所述的方法和/或权利要求4至6任一项所述的方法。
CN201911418011.0A 2019-12-31 2019-12-31 一种分布式系统、数据聚合方法和计算机可读存储介质 Active CN113132267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911418011.0A CN113132267B (zh) 2019-12-31 2019-12-31 一种分布式系统、数据聚合方法和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911418011.0A CN113132267B (zh) 2019-12-31 2019-12-31 一种分布式系统、数据聚合方法和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113132267A CN113132267A (zh) 2021-07-16
CN113132267B true CN113132267B (zh) 2022-09-02

Family

ID=76769613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911418011.0A Active CN113132267B (zh) 2019-12-31 2019-12-31 一种分布式系统、数据聚合方法和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113132267B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672644B (zh) * 2021-07-23 2024-10-11 济南浪潮数据技术有限公司 基于es服务的深度检索优化方法、系统、终端及存储介质
CN113868510A (zh) * 2021-09-15 2021-12-31 猪八戒股份有限公司 一种数据处理方法、设备及计算机可读存储介质
CN114020986B (zh) * 2022-01-05 2022-04-26 深圳思谋信息科技有限公司 内容检索系统
CN117216083A (zh) * 2022-06-10 2023-12-12 华为技术有限公司 一种数据处理系统及装置
CN117312298A (zh) * 2022-06-24 2023-12-29 中兴通讯股份有限公司 数据查询方法、数据库节点及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009100658A1 (zh) * 2008-02-05 2009-08-20 Huawei Technologies Co., Ltd. 用户数据服务器系统、方法和装置
CN103258036A (zh) * 2013-05-15 2013-08-21 广州一呼百应网络技术有限公司 一种基于p2p的分布式实时搜索引擎
CN106844405A (zh) * 2015-12-07 2017-06-13 杭州海康威视数字技术股份有限公司 数据查询方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009100658A1 (zh) * 2008-02-05 2009-08-20 Huawei Technologies Co., Ltd. 用户数据服务器系统、方法和装置
CN103258036A (zh) * 2013-05-15 2013-08-21 广州一呼百应网络技术有限公司 一种基于p2p的分布式实时搜索引擎
CN106844405A (zh) * 2015-12-07 2017-06-13 杭州海康威视数字技术股份有限公司 数据查询方法和装置

Also Published As

Publication number Publication date
CN113132267A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN113132267B (zh) 一种分布式系统、数据聚合方法和计算机可读存储介质
US10225145B2 (en) Method and device for updating client
CN108255958B (zh) 数据查询方法、装置和存储介质
CN109918205B (zh) 一种边缘设备调度方法、系统、装置及计算机存储介质
US20190327105A1 (en) Method and apparatus for pushing information
CN109871251B (zh) 一种响应数据的处理方法、装置、存储介质及终端设备
CN110784336A (zh) 基于物联网的多设备智能定时延时场景设置方法及系统
CN112416964A (zh) 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质
CN109241099B (zh) 一种数据查询方法及终端设备
CN112130936B (zh) 基于轮询的数据调用方法、装置、设备及存储介质
CN109446515A (zh) 群组信息分析方法、电子装置及计算机可读存储介质
CN109388552B (zh) 启动应用程序的时长的确定方法、装置及存储介质
CN110807050A (zh) 性能分析方法、装置、计算机设备及存储介质
CN109889349A (zh) 一种app广播消息推送方法、装置及可读存储介质
CN111159131A (zh) 性能优化方法、装置、设备及计算机可读存储介质
US20180307415A1 (en) Optimizing access to universal integrated circuit card (uicc) files in a user equipment (ue)
CN109284268A (zh) 一种快速解析日志的方法、系统及电子设备
CN113392131A (zh) 数据处理方法、装置及计算机设备
CN102946449A (zh) Url 的匹配方法、装置及网关
CN111291207A (zh) 图片存储方法、装置及服务器
CN112486556B (zh) 一种服务器兼容bmc的方法、系统、终端及存储介质
CN111314184B (zh) 基于透传机制的控制方法及系统
WO2014173129A1 (en) Mobile terminal flow identification method and apparatus
CN110781370B (zh) 一种移动终端信息查询方法和计算机设备
CN113132324B (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
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant