CN105022772A - 用于搜索分布式节点分片图的系统和方法 - Google Patents
用于搜索分布式节点分片图的系统和方法 Download PDFInfo
- Publication number
- CN105022772A CN105022772A CN201510104754.6A CN201510104754A CN105022772A CN 105022772 A CN105022772 A CN 105022772A CN 201510104754 A CN201510104754 A CN 201510104754A CN 105022772 A CN105022772 A CN 105022772A
- Authority
- CN
- China
- Prior art keywords
- node
- section point
- searching request
- thesaurus
- search
- 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.)
- Withdrawn
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式涉及用于搜索分布式节点分片图的系统和方法。提供了一种用于搜索由节点所分片的分布式图的系统、装置和方法。控制器接收保证或要求在起始节点处开始的宽度优先搜索的查询。该控制器向维护该起始节点的第一数据服务器发出搜索请求,其具有其它标准的标识符(例如,目的地节点)并且具有任何可应用执行参数,该执行参数可以使得该搜索提早结束或者可以使得一些结果被删减。如果该第一数据服务器无法解析该请求,则其将该搜索传播至存储其它节点(例如,直接连接至该起始节点的节点)的一个或多个其它数据服务器,并且转发该执行参数以及其可能已经生成的任意部分结果(例如,部分路径)。那些数据服务器将对该搜索请求进行处理,向控制器返回响应结果,和/或进一步传播该请求。
Description
技术领域
本公开内容涉及数据库和计算机系统的领域。更具体地,提供了用于搜索分布式图、数据库或者其它数据集合的系统和方法。
背景技术
大型数据库经常通过(一般在单个服务器上)存储单一模式的数据库行的不同集合而在水平上进行分区。水平分区的一种好处是对应于分区的索引的大小有所减小。分片(sharding)通过跨一种模式的多个实例对数据库行进行分区而延伸了这一概念,由此允许大数据库表得以跨多个服务器而被划分;使用单独的索引来管理每个分区。
例如,包括数百万节点以及连接那些节点的边的大型图可能过大而无法被存储在单个存储库中,并且因此可能跨多个存储库或者在多个存储库之中进行分布。
附图说明
图1是描绘可以在其中实施一个或多个实施例的计算环境的框图。
图2是依据一些实施例的描绘用于执行分布式图的宽度优先搜索的装置和方法的框图。
图3是依据一些实施例的演示执行分布式图的宽度优先搜索的方法的流程图。
图4是依据一些实施例的用于搜索已经由节点所分片的分布式图的装置的框图。
具体实施方式
以下描述被给出以使得本领域的任何技术人员都能够制造并使用所公开的实施例,并且以一个或多个特定应用及其要求为背景而提供。针对所公开实施例的各种修改对于本领域技术人员将是轻易显而易见的,并且这里所定义的一般原则可以被应用于其它实施例和应用而并不背离所公开的那些实施例和应用的范围。因此,与本公开相关联的一项或多项发明并非意在被局限于所示出的实施例,而是要以与本公开相符的最为宽泛的范围为依据。
在一些实施例中,提供了用于对已经由节点跨多个逻辑或物理数据服务器进行分片或水平分区的分布式图来执行搜索或查询的系统和方法。根据以下描述,能够容易研发出其它实施例以便随以有利于进行分片或水平分区的方式进行配置的其它类型的数据而使用。
该系统包括多个数据服务器以及附加的用于接收查询并对其作出响应的逻辑,并且该方法提供了查询响应从个体服务器的快速返回,同时允许对查询进行动态调节以提早终止查询、删减结果,或者影响查询的执行和/或针对查询的响应。
图1是根据一些实施例的用于搜索水平分区或分片的数据集合(诸如分布图)的系统的框图。系统110可以被说明性地实施为一个组织的数据中心或者在该数据中心内实施,该数据中心托管维护数据的在线应用或服务。
在一些特定实现中,系统110在由例如公司所提供的专业或社交联网服务或系统内进行操作,上述服务或系统帮助成员创建、开发并维护专业(和个人)关系。作为说明,在这些实现中,数据可以表示成员以及它们针对彼此的连接。
系统110所提供的服务或应用的成员或用户经由客户端设备连接至该系统,该客户端设备可以是静态的(例如,台式计算机、工作站)和/或移动的(例如,智能电话、平板电脑、膝上电脑)。该客户端设备操作诸如浏览器程序或者专门被设计为访问系统110所提供的(多种)服务的应用之类的适当的客户端应用。系统110的用户可以被称作成员,因为他们可能被要求向系统进行注册以便完全访问可用服务。
用户连接通常通过端口112来形成,后者可以包括应用服务器、web服务器和/或一些其它网关或入口点。系统110还包括内容服务器114、(多个)控制器116、内容存储124和数据服务器126。
作为其所提供的服务的一部分,系统110供应内容以用于经由用户的客户端设备向其进行呈现。所供应的内容可以包括状态更新、消息、广告、工作机会、通告、工作列表、新闻等,并且可以是或可以包括任意类型的媒体(例如,文本、图像、视频、音频)。系统110可以供应由系统的服务的用户所生成的内容和/或由第三方所提供的内容以便递送至那些服务的用户。
内容服务器114维护用于向成员供应的内容项的一个或多个存储库(例如,内容存储124)、内容项的索引和/或在向成员提供内容时有用的其它信息。作为说明,内容服务器114可以每天供应数亿量级的内容项,系统可以针对其中的每一个内容项存储事件记录(除了反应其它用户活动的数据之外)。
如以上所指出的,内容存储124可以包括用于向成员提供和/或供系统110的各种组件所使用的各种类型的内容和内容项,包括状态更新、成员以及有可能非成员所发布的信息(例如,通告、消息、评论、布告)、文档、广告(例如,收益广告和非收益广告二者)、工作列表、媒体内容(例如,图像、视频、音频),等等。内容服务器114(或者系统110的一些其它组件)可以包括用于推荐向成员供应的内容的推荐模块。
系统110所托管的服务的成员在系统上具有对应页面(例如,网页、内容页面),他们可以使用该页面来促成其与该系统以及彼此之间的活动。这些页面(或者经由这些页面提供给成员的信息)可用于一些或所有其它成员访问以便浏览相对应成员所提供或者与之相关联的消息、通告和/或其它信息。成员的页面可以存储在图1中所描绘的系统110的组件上,或者存储在图中并未示出的组件上。
数据服务器116存储表示成员连接的图的数据,其中每个节点对应于一个成员或用户(或其它实体),并且两个节点之间的每条边对应于这两个节点所表示的成员/用户/实体之间的关系。在不同实施例中,关系可以是明确的、隐含的,或者是明确和隐含的组合。
当一个成员直接请求与另一个成员的关系并且该另一成员同意时形成明确关系。隐含关系则通过更为随意的类型的联系而形成,诸如当一个成员向另一个成员发送消息(例如,聊天消息、电子邮件消息)时,当一个成员为另一个成员确认(endorse)时,当一个成员对另一个成员的动作作出响应时(例如,通过对其进行评论或者通过“点赞”它),当两个成员表现出相同或相似的行为或兴趣时(例如,通过互相“点赞”或“分享”一个或多个内容项),和/或以其它方式形成。群组的成员可以通过明确或隐含的关系进行连接。
系统110所提供的服务的成员的网络可以数量在数千万或数亿。因此,成员的连接的图可以在任何数量的数据服务器126之中进行分布。在一些实施例中,图数据由节点(例如,成员)所分片,其中每个数据服务器负责维护一定数量的节点。数据服务器所存储的节点可以包括相对应成员的一些或全部属性。特别地,节点包括或者伴随有标识相对应成员与之直接连接的所有其它成员的信息。换句话说,节点的数据可以包括连接至该节点的所有边,并且每条边标识处于这条边的另一端的节点。下文中对搜索被分片的图数据的方法进一步进行描述。
系统110可以包括图1中并未图示的其它组件。例如,在一些实施例中,系统110可以包括简档服务器以在简档数据库中维护系统110所托管的(多种)服务的成员的简档。
个体成员的简档可以反映该成员的任意数量的属性或特性,包括个人的(例如,性别、年龄或年龄范围、兴趣、爱好、成员ID)、职业的(例如,就业状况、职位名称、职能范围或行业、雇主、技能、确认情况、职业薪酬)、社交的(例如,用户作为其成员的组织、居住的地理区域、好友)、教育的(例如,(多种)程度、毕业院校、其它培训),等等。成员简档或者成员简档的属性或维度可以以各种方式被系统组件所使用(例如,以标识谁发送了消息,以标识状态更新的接受方,记录内容递送事件)。
组织也可以是服务的成员(例如,除了个人之外),并且可以具有相关联的描述或简档,其中包括诸如行业(例如,信息技术、制造业、金融)、大小、位置、目标等的属性。“组织”可以是公司、集团、合伙企业、商行、政府机构或实体、非盈利实体、在线社区(例如,用户群组),或者实际上出于任何目的(例如,职业、社交、教育)所形成的一些其它实体。
简档服务器可以与数据服务器126进行组合,而使得每个数据服务器维护对应于该服务器上所存储的节点的成员的全部简档。备选地,数据服务器126可以与简档服务器有所不同,在这种情况下,数据服务器将存储并维护足够的成员/用户信息以有助于对分布式图的搜索和查询,并且简档服务器将存储其它的成员信息,但是在数据服务器和简档服务器上所存储的成员信息之间可能存在重叠。
系统110的功能可以以可替换的方式在所图示的组件之中进行分布,诸如通过合并(merge)或者进一步划分一个或多个组件的功能,或者可以在不同组件集合之中进行分布。更进一步地,尽管在图1中被描绘为单独的硬件组件(例如,计算机服务器),但是端口112、内容服务器114、控制器116和数据服务器126中的一个或多个可替换地可以被实施为在一个或多个计算机服务器上执行的单独软件模块。因此,虽然图1中可能仅图示出了系统110的特定组件的单个实例,但是应当理解的是,可以利用一些或所有组件的多个实例。另外,每个数据服务器126可以被重复或被镜像。
在一些具体实施例中,跨数据服务器126分布的节点分片图的每个节点表示由系统110所托管的服务的个体成员,包括多个成员的群组或团队,或者组织或组织的一部分。所给出的分布式图的节点可以是同类的(即,全部表示相同类型的实体)或者异类的(即,不同节点表示不同类型的实体)。
在这些实施例中,边也可以是同类或异类的。作为说明而并非对其它实施例进行限制,给定的边可以连接两个明确(或隐含)连接的成员,或者可以表示关注(follow)一个成员(例如,影响力人物(influencer))的另一成员,属于团队或群组的成员,或者在特定组织工作或关注特定组织的成员(或者团队或群组),等等。
图2是描绘根据一些实施例的用于执行分布式图的宽度优先搜索的装置的框图。在这些实施例中,数据服务器226(例如,服务器226a、226b、226i)存储大型图的多个部分,作为说明,该图可以是如结合图1所讨论的职业或社交网络的成员的节点分片图。
控制器216控制对该图执行的查询和搜索,并且包括标识每个图节点的位置(即,该节点存储于其上的数据服务器)的节点图(nodemap)220,以及用于执行查询/搜索的逻辑。虽然以宽度优先搜索为上下文进行讨论,但是图2的装置可替换地可以在其它实施例中被用来执行深度优先搜索。
作为说明,宽度优先搜索可能被用来找出两个节点之间的最短路径,以标识出一个所连接组件内的所有节点,和/或用于其它用途。
例如,可以执行查询以标识出给定起始节点通过其连接至给定目的地节点的一个或多个节点。在表示职业或社交网络的分布式图的背景下,这有助于标识两个成员之间的路径。
作为另一个示例,可能想要标识出距离给定节点某个设定距离或者处于一定距离范围之内、并且具有一个或多个特定属性的节点。作为说明,给定节点的第二级连接位于距离该节点两跳(即,两条边)。因此,第N级连接可以被容易地标识出,并且随后出于一些目的进行分析(例如,用来标识出具有所指定的共有属性的节点)。
每个数据服务器226存储包括节点的一些数量的节点数据,并且因此可以被认为是“节点存储库”。可替换地,“节点存储库”可以指代存储节点数据的存储设备或组件。出于说明而非限制的目的,每个服务器在图2的环境中维护大约100个节点。在其它实施例中,不同服务器可以存储不同数量的节点。每个服务器还包括用于促成对图执行查询或搜索的逻辑228。
在其它实施例中,数据服务器226可以包括其它部件。例如,数据服务器可以包括节点图220、节点图220的子集(例如,用于标识直接连接至存储在该数据服务器处的节点的所有节点的存储库),和/或与分布式图相关联的其它信息。作为另一个示例,数据服务器可以包括一个或多个反向索引。说明性的反向索引可以标识出直接连接至数据服务器但是并未存储在该数据服务器上的所有节点,可以标识出该数据服务器上具有给定属性(或给定属性集合)的所有节点,等等。
图示出了存储在每个数据服务器处的节点数据的部分(例如,数据服务器226a的节点13和81,数据服务器226i的节点801和802)。在这些实施例中,每个节点的数据标识节点以及连接至该节点的所有边;在其它实施例中可以存储其它数据(例如,节点或者对应于该节点的成员的其它属性)。作为说明,边通过处于该边的另一端处的节点的标识符进行排序。
在一些实施例中,边具有可以存储在经由该边连接的一个或两个节点处的属性。边的属性可以说明性地标识出该边何时和/或如何形成,可以标识出两个节点所共有的一个或多个属性,等等。
查询逻辑218、228包括指令,该指令供控制器和数据服务器所执行以接收搜索请求(或查询),处理该请求,在必要情况下向其它数据服务器重新发出该请求或后继请求,以及返回结果。
在用于搜索分布式节点分片图的方法的说明性实现中,控制器216从图2的装置在其中进行操作的系统或数据中心的运营商或其它组件接收查询。该查询可以说明性地源自于在系统或数据中心的一些其它计算装置上执行的应用、服务或其它软件。
该控制器随后将搜索请求分派至至少一个数据服务器。该数据服务器可以针对该请求提供完整或部分的响应(例如,根据其是否具有所有必要信息),并且还可以或者另外将其传播至一个或多个对等的数据服务器。例如,图的宽度优先搜索可能要求第一数据服务器将该请求散布至维护有直接连接至由第一数据服务器所维护的节点的节点的其它数据服务器,并且该请求可以在数据服务器之中进行传播直至一个或多个结果得以被标识(并且返回至控制器),或者直至该搜索终止或者被修改。
本领域技术人员将会意识到,这与传统的进行宽度优先搜索的方法有所不同,在传统方法中,每个数据服务器仅与控制器进行通信,并且无法通过将搜索请求直接转发至另一个数据服务器而对其进行传播。
可能作为负载平衡模式的一部分而实施多个控制器216。类似地,每个数据服务器226可以表示维护一个节点集合的集群或其它服务器协作群组,和/或个体数据服务器的数据可以被重复、镜像或者进行复制。
图3是论证依据一些实施例的执行分布式图的宽度优先搜索的方法的流程图。该方法按照就如其在图2的装置上实施那样进行描述,其中大型图被节点所分片,但是其并不局限于利用这样的装置或这样的数据的实现。
在操作302中,控制器(例如,控制器216)接收宽度优先搜索请求,或者要求或确保图的宽度优先搜索的执行的查询。例如,可以接收到针对从一个节点到另一个节点的最短路径的请求。出于讨论的目的,将假设两个节点分别对应于成员176和802。因此,搜索结果应当返回存在于成员176和802之间的最短路径,以及可能地受到该搜索的动态修改的影响的其它路径。
在操作304中,独立于该搜索请求或查询或者作为其一部分,控制器接收零个或更多可以控制或修改宽度优先搜索的执行的参数。在不同实施例中,可以采用不同类型的参数。
一种说明性参数是存活时间(或TTL)参数。TTL参数包括时间值(例如,100ms、200ms、300ms),并且该搜索将在该搜索开始之后(例如,在其被控制器发出之后,在其在第一数据服务器处被接收之后)过去该时间段时(或者在其后很快)终止。
另一种说明性参数是最大跳计数(或MHC)参数。最大跳计数参数包括标识跳的数量的整数值(例如,4、6、8),并且搜索可以在从初始节点起达到所指示的跳数时自动终止,或者换句话说,在搜索请求从存储有第一节点(节点176)的初始服务器向一个或多个附加的数据服务器转发了所指定次数之后自动终止。
在不同实现中,如果在MHC或TTL参数被触发时还没有标识出路径,则搜索也可以终止。可替换地,搜索可以继续进行直至标识出至少一条路径,可以继续进行直至另一个参数被触发,等等。
另一个说明性参数是目标跳数(或THC)参数。目标跳数参数包括一个或两个整数值。单个值将导致仅在长度上与所指定的跳数相等的路径被返回,而两个值则使得仅具有处于这两个数值之间(包含性或排斥性)的长度的路径被返回。
在其它实施例中,一个或多个执行参数可以被配置为基于分布式图的节点和/或边的属性对搜索进行修改或整形。例如,可能期望仅标识遍历一个或多个具有特定属性的节点或边的路径,或者相反地,拒绝包括具有该属性的节点或边的路径。
作为说明而非限制,执行参数可以用来删减(省略)不包括至少一个对应于影响力人物(例如,有影响力的成员)的节点的路径,包括对应于为不同雇主工作的成员的节点的路径(即,仅期望连接具有指定雇主的成员的路径),具有同类边的路径,包括具有小于阈值数的第一级连接的节点的路径,等等。分布式图的任何节点属性或边属性或者节点属性和边属性的任意组合可以被用作执行参数。
在操作306中,控制器标识维护对应于成员176的第一节点的第一数据服务器(或数据服务器的第一协作集群)。在图2的环境中,这是数据服务器226b。如图2所示,控制器可以维护节点图、路由表或者将节点(或成员)映射至进行负责的数据服务器的其它数据。
在操作308中,控制器向第一数据服务器发出宽度优先搜索。在所图示的方法中,该搜索请求标识出第一节点(成员176)和第二节点(成员802),并且在操作304中接收到任何操作参数的情况下包括该操作参数。该请求还可以包括时间戳,其指示该请求何时被控制器所发出,并且可以标识出该控制器从而使得数据服务器将知道将其结果(如果有任何结果产生)要发送至何处。
在操作310中,第一数据服务器检查其节点数据,而确定其是否包括从第一节点到第二节点的直接连接(例如,单条边)。如图2中的节点数据所示,成员176的节点并未通过单条边而直接连接至成员802的节点。然而,成员176的节点176具有到若干其它成员的节点的边,并且因此到成员802的最短路径将通过它们中的一个或多个(如果从成员176到成员802的确存在任何路径)。
在一些实施例中,如果所有中间节点都被存储在相同数据服务器上,则两个节点之间的“直接连接”可以包含多于一条的边。因此,如果第一数据服务器存储了具有定义了从节点176到节点802的相对应的边的多个节点,则这可以是数据服务器将返回至控制器的有效结果(如果其在有任何可应用的执行参数的情况下满足了可应用的执行参数)。
在操作312中,如果当前(例如,第一)数据服务器的节点数据揭示出指向目的地节点的直接连接,则该方法在操作320继续进行。否则,所图示的方法前进至操作330。
在操作320中,当前数据服务器确定其是否应当报告其已经标识出的(多个)直接连接。一个或多个可应用的执行参数可能导致该数据服务器使得其所发现的一个或多个连接无效,在这种情况下,那些结果被删减(即,被丢弃)。
作为说明,直接连接可能由于其比最小长度更短或者比最大长度更长、由于操作参数指示并不返回包括特定节点(例如,节点13)的结果、由于该连接不包括所要求的中间节点、或者出于一些其它原因而被删减。
如果其所标识的所有直接连接都被删减,则所图示的方法前进至操作330;否则,其在操作322继续进行。
在操作322,当前(例如,第一)数据服务器将其(有效)结果直接报告给发出宽度优先搜索请求的控制器。如以上所描述的,所报告的结果可能并不包括该数据服务器所标识的所有直接连接,但是将包括满足可应用执行参数的那些直接连接。
在操作330中,当前数据服务器确定其是否应当终止搜索。例如,如果该请求伴随有TTL参数,则所伴随的时间值将被应用以确定该请求是否已经过期。可替换地,该请求可以包括将通过添加另一跳(例如,通过将搜索请求转发至另一数据服务器)而被触发或违背的MHC参数,操作322中所遇到的最大数量的结果参数,等等。
如果TTL参数、MHC参数或者其它参数触发了搜索的终止,则该方法结束。否则,该方法在操作332继续进行。操作330是可选的,因为该请求可能并不包括触发搜索终止的参数。在一些实施例中,有关终止搜索还是以其它方式对其进行调节的决策可以在该搜索的不同点(或多个点)进行。
在操作332,当前(例如,第一)数据服务器(服务器226b)将向一些或所有其它数据服务器—至少是存储通过单条边直接连接至节点176的节点的数据服务器—重新发出或转发该请求。如果第一数据服务器具有标识出哪些数据服务器存储了哪些切分或者哪些个体节点的信息,则其能够仅将该请求发送至那些数据服务器。可替换地,其可以简单地将该请求广播至一些或全部的其它数据服务器。
可以注意到的是,数据中心自身传播搜索请求,而不是简单地向控制器标识所连接的节点并且要求控制器进行该传播。
利用所重新发出或转发的请求或在其内部,数据服务器标识出该请求的发起方(即,该控制器)、目的地节点(节点802)、该请求的时间戳以及任意操作参数。该请求还标识出当前(例如,第一)数据服务器已经形成或增加的指向目的地节点的一条或多条(部分)路径。在这种情况下,如果该搜索仅针对初始节点的边进行,则说明性路径可以被表示为{176}。由于另外的数据服务器代表其它节点处理该搜索请求,所以该部分路径将被延长。并且,当搜索分叉时(如果其分叉),则多条部分路径可以在每一跳被生成并更新。
作为说明,随搜索请求所转发的存活时间参数可以减小以当前数据服务器处理该搜索结果所花费的时间量。或者,后续数据服务器可以简单地将TTL参数和时间戳与当前时间之间的差异进行比较以便决定TTL参数是否已经被触发。类似地,最大跳计数或目标跳数参数可以被第一数据服务器减去1。或者,后续数据服务器可以将MHC或THC参数与伴随所转发的请求的(多条)部分路径的长度进行比较以确定跳数参数是否已经被触发。
在操作334中,搜索接收到所转发的搜索请求的数据服务器的节点数据以搜寻从所转发的搜索请求中所标识的路径或部分路径中的最终节点(例如,该搜索请求的第一次转发之后的节点176)到目的地节点(节点802)的之间连接。操作334和后续操作可以由接收到所转发的搜索请求的多个不同数据服务器(并行)执行。
该方法随后返回至操作312,并且更多数据服务器被涉及到该搜索之中。最终,节点176和802之间的一条或多条有效路径会被发现并且直接报告给控制器,或者所有可能路径都将被发掘但是将找不到路径(或者没有满足执行参数的路径),或者该搜索可能在发现任何路径之前超时。
在一些实施例中,搜索可以在操作330或者在该处理中的一些其它点进行修改(而不是被终止)。例如,如果伴随该搜索请求的执行参数包括THC参数,并且所要求的路径长度(针对单值参数而言)或最小路径长度(针对双值参数而言)还没有被满足,则数据服务器可以简单地标识出出边并且相应地传播搜索请求(而不是针对直接连接而搜索其节点数据)。或者,其可以仅针对满足其余路径长度要求的直接连接来搜索其节点数据。
在其它实施例中,图3中所描绘的操作可以以一些其它顺序来进行,或者所描述的方法可以表征提供相同或相当的结果的更少或额外的操作而并不超出本发明的范围。
图4是根据一些实施例的用于搜索已经由节点所分片的分布式图的装置的框图。
图4的装置400包括(多个)处理器402、存储器404和存储406,该存储406可以包括一个或多个光学、固态和/或磁性存储组件。存储406可以处于该装置本地或与之远离。装置400可以(永久或临时地)耦合至键盘412、定向设备414和显示器416。多个装置400可以协同操作以存储并遍历分布式图,或者装置400可以包含以类似方式进行操作的多个单独的逻辑和/或物理组件。
存储406存储节点数据422,后者包括分布式图中一定数量的节点,每个节点包括该节点的标识符和/或该节点所表示的实体(例如,职业或社交网络的成员)、节点的边或第一级连接的标识(例如,相对应成员的第一级连接),并且可能包括该节点的一个或多个属性。例如,如果节点表示职业或社交网络的成员,则该属性可以包括该成员的任意数量的个人、职业、社交和/或教育属性。
存储406可选地可以存储一个或多个反向索引424,在一些实施方式中,后者包括直接连接至(即,经由分布式图的单条边)节点数据422中所包括的节点的所有节点的索引。索引424中所标识的节点可以在节点数据422中包括任意节点。特别地,该节点数据内的一些节点将具有去往该节点数据内的其它节点的直接连接,并且反向索引424可以对它们有所反映或并不有所反映。
存储406还存储可以被加载到存储器404中而供(多个)处理器402执行的逻辑。这样的逻辑包括搜索逻辑426和控制逻辑428。在其它实施例中,这些逻辑模块和/或其它内容可以被组合或划分以按照需要对其功能进行汇总或分割。
搜索逻辑426包括用于如所保证的针对查询或搜索请求进行接收、执行、传播和响应的计算机可执行指令,上述查询或搜索请求涉及到存储在该装置的分布式图的节点。例如,作为宽度优先搜索的一部分,节点和相对应的属性(例如,边、与相对应成员相关联的数据)可以被检查以找出两个节点之间的路径(例如,最短路径、说明路径、路径长度)、找出直接连接至特定目的地节点的节点的成员,找出第一节点通过其连接至第二节点的一个或多个中间节点,将第一节点连接至第二节点并且包括(或省略)具体中间节点的路径,等等。如果标识出响应数据(例如,如果标识出所请求的路径),则该数据被直接返回至该查询或搜索请求的发起方(例如,控制器)。如果没有标识出响应数据,则该搜索可以被直接传播至其它装置或装置400的其它组件。
控制逻辑428包括用于控制、改变或终止查询或搜索请求的执行的处理器可执行指令。例如,控制逻辑428可以包括一个或多个参数或者与之相关联,当被触发时,改变搜索如何进行、终止搜索、终止一个或多个结果或候选结果被报告,等等。
在本发明的一些实施例中,装置400执行归于图2的数据服务器226—并且可能归于控制器216—的大多数或全部功能。因此,该装置可以包括其它组件和/或逻辑以促成节点分片图的维护和搜索。
虽然以上处理已经以特定应用为背景进行了描述,但是将要意识到的是,该处理并不取决于该特定的应用背景。相反,这里所描述的处理可以被用来促成具有节点和边的图结构的任意分布式数据集合的搜索。该结构一般应用于关系数据库系统,后者能够关于具有实体之间的关系(连接)的实体(节点)进行定义。可能使用这里所描述的方法进行搜索的数据集合的示例包括计算机或通信网络的表示形式、组件和路由以及半导体设备的表示形式、专利同族、流行病学数据集合、任意物理或逻辑系统中的从属性映射、产品数据库等,但是并不局限于此。
以上所描述的一个或多个实施例在其中执行的环境可以结合有通用计算机或专用计算机,诸如手持计算机或通信设备。这样的设备的一些细节(例如,处理器、存储器、数据存储、显示器)出于清楚的原因可以被省略。诸如一个或多个任务或功能所属的处理器或存储器之类的组件可以是被临时配置为执行所指定的任务或功能的通用组件,或者可以是被制造为执行该任务或功能的具体组件。如这里所使用的术语“处理器”是指被配置为处理数据和/或计算机程序代码的一个或多个电子电路、设备、芯片、处理核心和/或其它组件。
该详细描述中所描述的数据结构和程序代码通常存储在非瞬态的计算机可读存储介质上,其可以是能够存储代码和/或数据以供计算机系统使用的任意设备或介质。非瞬态的计算机可读存储媒体包括但并不局限于易失性存储器、非易失性存储器、磁性和光学存储设备,诸如磁盘驱动器、磁带、CD(高疏密程度光碟)和DVD(数字多功能盘或数字视频盘)、固态驱动器和/或目前已知或日后研发的其它非瞬态的计算机可读介质。
详细描述中所描述的方法和处理能够被体现为代码和/或数据,其可以存储在如以上所描述的非瞬态的计算机可读存储介质中。当处理器或计算机系统读取并执行该代码并且操控存储在该介质上的数据时,该处理器或计算机系统执行被体现为代码和数据结构并存储在该介质内的方法和处理。
此外,该方法和处理可以被编程到硬件模块之中,后者诸如但并不局限于应用特定集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及目前已知或日后研发的其它可编程逻辑设备。当这样的硬件模块被激活时,其执行该模块中包括的方法和处理。
已经仅出于说明和描述的目的给出了上述实施例。它们并非意在是穷举的或者将本公开限制为所公开的形式。因此,任何修改和变化对于本领域技术人员都将是显而易见的。其范围由所附权利要求而非之前的描述所限定。
Claims (23)
1.一种搜索由节点所分片的分布式图的方法,该方法包括:
在存储有所述分布式图的第一分片的第一节点存储库处接收有关第一节点和第二节点的搜索请求;
操作所述第一节点存储库的处理器以确定所述第一分片是否包括所述第一节点和所述第二节点之间的直接连接;以及
如果所述第一分片不包括所述第一节点和所述第二节点之间的直接连接,则直接向存储有所述分布式图的其他分片的一个或多个其他节点存储库传播所述搜索请求。
2.根据权利要求1所述的方法,其中:
所述第一分片包括所述分布式图的第一节点集合;并且
所述第一节点集合中的每个节点包括至少一条将所述节点连接至所述分布式图的另一节点的边。
3.根据权利要求1或2所述的方法,其中在以下情况下所述第一分片包括从所述第一节点到所述第二节点的直接连接:
所述第一分片包括所述第一节点;并且
所述第一节点包括将所述第一节点直接连接至所述第二节点的边。
4.根据之前任一项权利要求所述的方法,其中在以下情况下所述第一分片包括从所述第一节点到所述第二节点的直接连接:
所述第一分片包括多个节点,从而所述多个节点包括定义所述第一节点和所述第二节点之间的路径的多条边,所述多个节点包括所述第一节点。
5.根据之前任一项权利要求所述的方法,其中:
所述搜索请求是针对从所述第一节点到所述第二节点的路径的请求;并且
所述搜索请求从被配置为管理所述分布式图的搜索的控制器被接收;
其中在所述第一分片不包括所述第一节点和所述第二节点之间的直接连接的情况下,不从所述第一节点存储库向所述控制器返回针对所述搜索请求的响应。
6.根据权利要求1至4中任一项所述的方法,其中:
所述搜索请求是针对从起始节点到所述第二节点的路径的请求,所述起始节点不同于所述第一节点;
所述搜索请求包括从所述起始节点到所述第二节点的部分路径,所述部分路径在所述第一节点处终止;并且
所述搜索请求从另一节点存储库被接收。
7.一种搜索由节点所分片的分布式图的方法,所述方法包括:
(a)在存储有所述分布式图的第一节点的第一节点存储库处操作第一处理器以:
(i)从搜索控制器接收有关所述第一节点和第二节点的搜索请求;
(ii)确定所述第一节点是否直接连接至所述第二节点;以及
(iii)如果所述第一节点未直接连接至所述第二节点,则将所述搜索请求转发至存储有直接连接至所述第一节点的其它节点的一个或多个附加节点存储库,转发的所述搜索请求包括:
(1)从所述第一节点到所述第二节点的部分路径,所述部分路径包括所述第一节点;和
(2)所述第二节点的标识符;并且
(b)在附加的节点存储库处操作附加的处理器以:
(i)确定存储在所述附加的节点存储库处的节点是否直接连接至所述部分路径中的所述第二节点和最后节点二者;
(ii)如果存储在所述附加的节点存储库处的给定节点直接连接至所述部分路径中的所述第二节点和所述最后节点二者,则向所述搜索控制器传送所请求的所述搜索的结果;
(iii)在所述一个或多个操作参数中的一个操作参数被触发的情况下调节所请求的所述搜索;以及
(iv)如果没有存储在所述附加的节点存储库处的节点直接连接至所述部分路径中的所述第二节点和最后节点二者,则:
(1)向所述部分路径添加存储在所述附加的节点存储库处的、直接连接至所述部分路径的所述最后节点的至少一个节点;
(2)将所述搜索请求重新转发至存储有直接连接至所述至少一个节点的其它节点的一个或多个附加的节点存储库;并且
(3)重复(b)。
8.根据权利要求7所述的方法,其中:
转发的所述搜索请求进一步包括标识时间段的存活时间参数;
所述存活时间参数在从所述搜索控制器接收到所述搜索请求之后经过所述时间段时被触发;并且
所述存活时间参数的触发使得所述搜索请求终止。
9.根据权利要求7或8所述的方法,其中:
转发的所述搜索请求进一步包括标识跳数的最大跳计数参数;
所述最大跳计数参数在所述部分路径的长度与所述跳数相匹配时被触发;以及
所述最大跳计数参数的触发使得所述搜索请求终止。
10.根据权利要求7至9中任一项所述的方法,其中所述搜索请求寻求对从所述第一节点到所述第二节点的最短路径的标识。
11.根据权利要求7至9中任一项所述的方法,其中所述搜索请求寻求对所述第一节点和所述第二节点之间的路径长度的标识。
12.根据权利要求7至11中任一项所述的方法,进一步包括在接收到所述搜索请求之前在所述节点存储库中的每个节点存储库处:
存储所述分布式图的节点的子集,每个所存储的节点包括:
直接连接至所存储的节点的一个或多个其它节点的标识符;和
所存储的所述节点的一个或多个属性。
13.根据权利要求7至12中任一项所述的方法,其中在所述分布式图包括连接一个节点与另一节点的单条边的情况下所述一个节点直接连接至所述另一节点。
14.根据权利要求7至12中任一项所述的方法,其中在单个节点存储库存储有具有定义一个节点和另一节点之间的路径的边的节点的集合的情况下所述一个节点直接连接至所述另一节点。
15.一种存储有指令的非瞬态计算机可读介质,所述指令在被处理器执行时,使得所述处理器执行一种搜索由节点所分片的分布式图的方法,所述方法包括:
(a)在存储有所述分布式图的第一节点的第一节点存储库处:
(i)从搜索控制器接收有关所述第一节点和第二节点的搜索请求;
(ii)确定所述第一节点是否直接连接至所述第二节点;并且
(iii)如果所述第一节点未直接连接至所述第二节点,则将所述搜索请求转发至存储有直接连接至所述第一节点的其它节点的一个或多个附加的节点存储库,转发的所述搜索请求包括:
(1)从所述第一节点到所述第二节点的部分路径,所述部分路径包括所述第一节点;和
(2)所述第二节点的标识符;并且
(b)在附加的节点存储库处:
(i)确定存储在所述附加的节点存储库处的节点是否直接连接至所述部分路径中的所述第二节点和最后节点二者;
(ii)如果存储在所述附加的节点存储库处的给定节点直接连接至所述部分路径中的所述第二节点和所述最后节点二者,则向所述搜索控制器传输所请求的所述搜索的结果;
(iii)在所述一个或多个操作参数中的一个操作参数被触发的情况下调节所请求的所述搜索;以及
(iv)如果没有存储在所述附加的节点存储库处的节点直接连接至所述部分路径中的所述第二节点和最后节点二者,则:
(1)向所述部分路径添加存储在所述附加的节点存储库处的、直接连接至所述部分路径的所述最后节点的至少一个节点;
(2)将所述搜索请求重新转发至存储有直接连接至所述至少一个节点的其它节点的一个或多个附加的节点存储库;并且
(3)重复(b)。
16.一种用于搜索由节点所分片的分布式图的系统,包括:
控制器,所述控制器接收有关所述分布式图的查询;以及
多个节点存储库,每个节点存储库包括:
存储装置,所述存储装置包含所述分布式图的多个节点;
一个或多个处理器;以及
存储有指令的存储器,所述指令在被所述一个或多个处理器执行时,使得所述节点存储库:
接收标识第一节点和第二节点的搜索请求;
搜索所述多个节点以搜寻所述第一节点和所述第二节点之间的直接连接;
如果所述多个节点包括所述第一节点和所述第二节点之间的直接连接,则向所述控制器报告所述直接连接;并且
向一个或多个其它节点存储库直接传播所述搜索结果。
17.根据权利要求16所述的系统,其中所述存储装置进一步包括:
针对所述多个节点中的每个节点的一条或多条将所述节点连接至一个其它节点的边。
18.根据权利要求16或17所述的系统,其中所述存储装置进一步包括:
针对所述多个节点中的每个节点的一个或多个属性。
19.根据权利要求16至18中任一项所述的系统,其中:
所述搜索请求包括标识时间段的存活时间参数;
所述存活时间参数在由所述控制器发出所述搜索请求之后经过所述时间段时被触发;并且
所述存活时间参数的触发使得所述搜索终止。
20.根据权利要求16至19中任一项所述的系统,其中:
所述搜索请求包括标识跳数的最大跳计数参数;
所述最大跳计数参数在第一直接连接的长度满足或超过所述跳数时被触发;并且
所述最大跳计数参数的触发使得所述第一直接连接被丢弃。
21.一种用于搜索由节点所分片的分布式图的装置,所述装置包括:
一个或多个存储有所述分布式图的节点的节点存储库;
一个或多个处理器;以及
存储有指令的存储器,所述指令在被所述一个或多个处理器所执行时,使得所述装置:
发出有关所述分布式图的第一节点和第二节点的搜索请求;并且
在接收到所述搜索请求的每个节点存储库处:
搜索到所述第二节点的直接连接;并且
如果没有在所述节点存储库处标识出到所述第二节点的直接连接,则:
延长所述第一节点和所述第二节点之间的部分路径;以及
向至少一个其他节点存储库直接传播所述搜索请求。
22.根据权利要求21所述的装置,其中:
所述搜索请求包括标识时间段的存活时间参数;
所述存活时间参数在由所述控制器发出所述搜索请求之后经过所述时间段时被触发;并且
所述存活时间参数的触发使得所述搜索终止。
23.根据权利要求21或22所述的装置,其中:
所述搜索请求包括标识跳数的最大跳计数参数;
所述最大跳计数参数在第一直接连接满足或超过所述跳数时被触发;并且
所述最大跳计数参数的触发使得所述第一直接连接被丢弃。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/257,423 US20150302063A1 (en) | 2014-04-21 | 2014-04-21 | System and method for searching a distributed node-sharded graph |
US14/257,423 | 2014-04-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105022772A true CN105022772A (zh) | 2015-11-04 |
Family
ID=52478073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510104754.6A Withdrawn CN105022772A (zh) | 2014-04-21 | 2015-03-10 | 用于搜索分布式节点分片图的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150302063A1 (zh) |
EP (1) | EP2937797A1 (zh) |
CN (1) | CN105022772A (zh) |
WO (1) | WO2015163955A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324074A (zh) * | 2018-03-30 | 2019-10-11 | 波音公司 | 利用虚拟路由区对非对地静止轨道系统进行移动路由 |
CN110574017A (zh) * | 2017-04-21 | 2019-12-13 | 微软技术许可有限责任公司 | 跨多个图的查询执行 |
CN110633378A (zh) * | 2019-08-19 | 2019-12-31 | 杭州欧若数网科技有限公司 | 一种支持超大规模关系网络的图数据库构建方法 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892210B2 (en) * | 2014-10-31 | 2018-02-13 | Microsoft Technology Licensing, Llc | Partial graph incremental update in a social network |
US10270679B2 (en) | 2015-07-24 | 2019-04-23 | International Business Machines Corporation | Determining connections between nodes in a network |
US10389640B2 (en) * | 2015-07-24 | 2019-08-20 | International Business Machines Corporation | Determining connections of a network between source and target nodes in a database |
US9378303B1 (en) * | 2015-09-18 | 2016-06-28 | Linkedin Corporation | Representing compound relationships in a graph database |
US9535963B1 (en) | 2015-09-18 | 2017-01-03 | Linkedin Corporation | Graph-based queries |
US9330138B1 (en) | 2015-09-18 | 2016-05-03 | Linkedin Corporation | Translating queries into graph queries using primitives |
US10169138B2 (en) | 2015-09-22 | 2019-01-01 | Walmart Apollo, Llc | System and method for self-healing a database server in a cluster |
US10268744B2 (en) | 2015-09-22 | 2019-04-23 | Walmart Apollo, Llc | System for maintaining consistency across a decentralized database cluster and method therefor |
US10083201B2 (en) | 2015-09-22 | 2018-09-25 | Walmart Apollo, Llc | System for maintaining consistency across a decentralized database cluster and method therefor |
US10394817B2 (en) | 2015-09-22 | 2019-08-27 | Walmart Apollo, Llc | System and method for implementing a database |
US9996591B2 (en) * | 2015-09-22 | 2018-06-12 | Walmart Apollo, Inc. | System and method for implementing a database in a heterogeneous cluster |
US10116736B2 (en) | 2015-09-22 | 2018-10-30 | Walmart Apollo, Llc | System for dynamically varying traffic routing modes in a distributed cluster and method therefor |
US9514247B1 (en) | 2015-10-28 | 2016-12-06 | Linkedin Corporation | Message passing in a distributed graph database |
US10180992B2 (en) | 2016-03-01 | 2019-01-15 | Microsoft Technology Licensing, Llc | Atomic updating of graph database index structures |
US20170262521A1 (en) * | 2016-03-11 | 2017-09-14 | Linkedin Corporation | Partitioning and replicating data in scalable distributed data stores |
US11030259B2 (en) | 2016-04-13 | 2021-06-08 | Microsoft Technology Licensing, Llc | Document searching visualized within a document |
CN106446039B (zh) * | 2016-08-30 | 2020-07-21 | 北京航空航天大学 | 聚合式大数据查询方法及装置 |
US10789295B2 (en) | 2016-09-28 | 2020-09-29 | Microsoft Technology Licensing, Llc | Pattern-based searching of log-based representations of graph databases |
US10754859B2 (en) | 2016-10-28 | 2020-08-25 | Microsoft Technology Licensing, Llc | Encoding edges in graph databases |
CN108132838B (zh) * | 2016-11-30 | 2021-12-14 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
US10740407B2 (en) | 2016-12-09 | 2020-08-11 | Microsoft Technology Licensing, Llc | Managing information about document-related activities |
US10726074B2 (en) | 2017-01-04 | 2020-07-28 | Microsoft Technology Licensing, Llc | Identifying among recent revisions to documents those that are relevant to a search query |
US10445321B2 (en) | 2017-02-21 | 2019-10-15 | Microsoft Technology Licensing, Llc | Multi-tenant distribution of graph database caches |
US10445370B2 (en) | 2017-06-09 | 2019-10-15 | Microsoft Technology Licensing, Llc | Compound indexes for graph databases |
US10671671B2 (en) | 2017-06-09 | 2020-06-02 | Microsoft Technology Licensing, Llc | Supporting tuples in log-based representations of graph databases |
US10628492B2 (en) | 2017-07-20 | 2020-04-21 | Microsoft Technology Licensing, Llc | Distributed graph database writes |
US10983997B2 (en) | 2018-03-28 | 2021-04-20 | Microsoft Technology Licensing, Llc | Path query evaluation in graph databases |
US11100109B2 (en) * | 2019-05-03 | 2021-08-24 | Microsoft Technology Licensing, Llc | Querying data in a distributed storage system |
US20200387813A1 (en) * | 2019-06-08 | 2020-12-10 | Trustarc Inc | Dynamically adaptable rules and communication system to manage process control-based use cases |
US11567995B2 (en) | 2019-07-26 | 2023-01-31 | Microsoft Technology Licensing, Llc | Branch threading in graph databases |
US11113267B2 (en) | 2019-09-30 | 2021-09-07 | Microsoft Technology Licensing, Llc | Enforcing path consistency in graph database path query evaluation |
US11556370B2 (en) | 2020-01-30 | 2023-01-17 | Walmart Apollo, Llc | Traversing a large connected component on a distributed file-based data structure |
US20220253404A1 (en) * | 2021-02-09 | 2022-08-11 | Stripe, Inc. | Data deletion in multi-tenant database |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317121A1 (en) * | 2011-06-09 | 2012-12-13 | Salesforce.Com, Inc. | Methods and systems for using distributed memory and set operations to process social networks |
CN103309917A (zh) * | 2012-03-12 | 2013-09-18 | 富士通株式会社 | 路径搜索方法和路径搜索装置 |
CN103380421A (zh) * | 2010-12-30 | 2013-10-30 | 脸谱公司 | 用于图形数据的分布式缓存 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7218917B2 (en) * | 2002-01-15 | 2007-05-15 | Hewlett-Packard Development Company, L.P. | Method for searching nodes for information |
US7472110B2 (en) * | 2003-01-29 | 2008-12-30 | Microsoft Corporation | System and method for employing social networks for information discovery |
US7852786B2 (en) * | 2004-05-18 | 2010-12-14 | British Telecommunications Plc | Peer-to-peer networks |
US20130041862A1 (en) * | 2010-04-23 | 2013-02-14 | Thomson Loicensing | Method and system for providing recommendations in a social network |
US8775517B1 (en) * | 2011-07-12 | 2014-07-08 | Relationship Science LLC | Viewing connectivity between user and entity of an information service |
US9253077B2 (en) * | 2012-11-30 | 2016-02-02 | International Business Machines Corporation | Parallel top-K simple shortest paths discovery |
-
2014
- 2014-04-21 US US14/257,423 patent/US20150302063A1/en not_active Abandoned
-
2015
- 2015-01-27 WO PCT/US2015/013082 patent/WO2015163955A1/en active Application Filing
- 2015-03-10 CN CN201510104754.6A patent/CN105022772A/zh not_active Withdrawn
- 2015-04-10 EP EP15163212.2A patent/EP2937797A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103380421A (zh) * | 2010-12-30 | 2013-10-30 | 脸谱公司 | 用于图形数据的分布式缓存 |
US20120317121A1 (en) * | 2011-06-09 | 2012-12-13 | Salesforce.Com, Inc. | Methods and systems for using distributed memory and set operations to process social networks |
CN103309917A (zh) * | 2012-03-12 | 2013-09-18 | 富士通株式会社 | 路径搜索方法和路径搜索装置 |
Non-Patent Citations (1)
Title |
---|
SALIM JOUILI等: "《imGraph: A distributed in-memory graph database》", 《2013 INTERNATIONAL CONFERENCE ON SOCIAL COMPUTING》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110574017A (zh) * | 2017-04-21 | 2019-12-13 | 微软技术许可有限责任公司 | 跨多个图的查询执行 |
US11874829B2 (en) | 2017-04-21 | 2024-01-16 | Microsoft Technology Licensing, Llc | Query execution across multiple graphs |
CN110324074A (zh) * | 2018-03-30 | 2019-10-11 | 波音公司 | 利用虚拟路由区对非对地静止轨道系统进行移动路由 |
CN110324074B (zh) * | 2018-03-30 | 2023-05-23 | 波音公司 | 卫星系统和用于对卫星系统进行路由的方法 |
CN110633378A (zh) * | 2019-08-19 | 2019-12-31 | 杭州欧若数网科技有限公司 | 一种支持超大规模关系网络的图数据库构建方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015163955A1 (en) | 2015-10-29 |
EP2937797A1 (en) | 2015-10-28 |
US20150302063A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022772A (zh) | 用于搜索分布式节点分片图的系统和方法 | |
Luz Tortorella et al. | What does operational excellence mean in the Fourth Industrial Revolution era? | |
US10419565B2 (en) | Method, device and system for pushing information | |
Cabral et al. | A decision-making model for lean, agile, resilient and green supply chain management | |
US9483580B2 (en) | Estimation of closeness of topics based on graph analytics | |
Browne et al. | Extended and virtual enterprises–similarities and differences | |
US20110099167A1 (en) | Graph Server Querying for Managing Social Network Information Flow | |
US20100153404A1 (en) | Ranking and selecting entities based on calculated reputation or influence scores | |
US20210097615A1 (en) | Tool for assisting user modification of a dynamic user portfolio | |
US20080189163A1 (en) | Information management system | |
US20130311559A1 (en) | System and method for providing an approval workflow in a social network feed | |
DE202011110145U1 (de) | Systeme für konversationsorientierte Fragen und Antworten | |
WO2010065112A1 (en) | Mediating and pricing transactions based on calculted reputation or influence scores | |
TW201433927A (zh) | 通訊式搜尋 | |
US11245649B2 (en) | Personalized low latency communication | |
CN104756108A (zh) | 用于在用户搜索web时向其提供来自其联系人的帮助的方法 | |
US20180211259A1 (en) | Artificial Intelligence Based Customer Service and Social Media Method | |
KR20130117057A (ko) | 스마트 소셜 그룹정보 제공시스템 및 그 방법 | |
CN102034144A (zh) | 用于在场的群组组成算法 | |
KR20180115082A (ko) | 챗봇, 신뢰도측정 및 프로젝트관리를 이용한 프로젝트 매칭 방법 및 시스템 | |
Sookoo et al. | Improvement of system performance in an IT production support environment | |
CN105431879A (zh) | 经由通信的模式来推断社交群组 | |
US20160381004A1 (en) | Certification management system | |
US10838819B2 (en) | Including personal relationship metadata within duplicated resources shared across partitioned storage | |
KR101183768B1 (ko) | 통합 뷰 제공 시스템 및 방법 그리고 이에 적용되는 뷰 생성 기능을 가지는 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180508 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: California Applicant before: LINKEDIN CORPORATION |
|
TA01 | Transfer of patent application right | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20151104 |
|
WW01 | Invention patent application withdrawn after publication |