CN110168523A - 改变监测跨图查询 - Google Patents

改变监测跨图查询 Download PDF

Info

Publication number
CN110168523A
CN110168523A CN201780066690.2A CN201780066690A CN110168523A CN 110168523 A CN110168523 A CN 110168523A CN 201780066690 A CN201780066690 A CN 201780066690A CN 110168523 A CN110168523 A CN 110168523A
Authority
CN
China
Prior art keywords
node
inquiry
array
change
identifier
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
Application number
CN201780066690.2A
Other languages
English (en)
Other versions
CN110168523B (zh
Inventor
P·D·亨
D·S·埃德森
A·K·约翰森
D·布拉德利
J-O·A·卡尔伯格
T·克勒策
A·克瓦尔内斯
S·维肯瓦尔瓦格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110168523A publication Critical patent/CN110168523A/zh
Application granted granted Critical
Publication of CN110168523B publication Critical patent/CN110168523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

近似成员资格查询(AMQ)过滤器与对关系图的图查询结合使用,以提供跨越与查询相关联的视图的改变监视。来自由图查询跨越的关系图的每个节点和视图的索引结构被添加为AMQ过滤器的成员。当对关系图进行改变时,将针对AMQ过滤器查询改变的节点。当改变的节点被注释为AMQ过滤器的候选成员时,可以重新运行图查询以更新与查询相关联的视图。否则,不会重新运行图查询,从而节省计算资源并改进托管和查询关系图的系统。

Description

改变监测跨图查询
背景技术
在图数据库中,实体被呈现为节点,并且这些实体之间的关系被呈现为由图数据库维护的关系图的视图中的边。用户可以经由图查询周期性地查询关系图,以了解实体之间的关系。例如,用户可以发出图查询以查找社交网络内的朋友或联系人、给定用户已经与之交互的文档、已经访问给定文档的用户、满足各种搜索标准的实体等。可以理解,关系图随着数据的添加、改变和删除而改变,并且图查询的结果可以因此而改变。然而,由于运行图查询的计算成本昂贵,因此根据底层关系图的改变而保持图查询的结果是最新的可能需要访问或托管图数据库的计算设备耗费大量处理或存储资源用于运行重复的图查询或在每个节点上运行改变监视器。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式部分中进一步描述。本发明内容不旨在确定所要求保护的主题的所有关键或必要特征,也不旨在帮助确定所要求保护的主题的范围。
本文提供了用于监视关系图的改变的计算上较不密集的方法,以及采用所述方法的系统。提供关系图的改变的流以与一个或多个近似成员查询(AMQ)过滤器进行比较,而不是周期性地重新运行图查询或者监视各个节点的改变(可能错过新节点的添加)。改变的流包括受节点改变影响的节点的标识符、连接到受改变影响的边的节点的标识符、和/或包含关系图的全部或部分的节点集的搜索索引树或其他标识符。
AMQ过滤器由针对要监视的已运行图查询满足或考虑的节点的节点标识符集构成。AMQ过滤器(包括但不限于布隆过滤器、布谷鸟过滤器和商过滤器)提供针对以下的概率检查:元素是否是不提供假否定的集合的成员;对于给定的比较,过滤器返回“可能在集合中”或“不在集合中”的结果。当返回“不在集合中”的结果时,确定该改变未影响图查询的结果。当返回“可能在集合中”的结果时,可以重新运行图查询并将其与先前的运行进行比较以确定是否已经发生了改变,在这种情况下,可以将改变暴露给查询用户。除了能够防止不必要的图查询重新运行之外,AMQ过滤器还提供减少需要存储在计算机存储器中的数据量的能力,检测节点的添加/删除作为图查询的潜在改变的能力,并提高决定重新运行图查询的速度。
示例被实现为计算机进程、计算系统或诸如设备、计算机程序产品或计算机可读介质的制品。根据一个方面,该计算机程序产品是计算机系统可读并且编码有包括用于执行计算机过程的指令的计算机程序的计算机存储介质。
在下面的附图和描述中阐述了一个或多个方面的细节。通过阅读以下详细描述和对相关附图的回顾,其他特征和优点将是显而易见的。应理解,以下详细描述仅是解释性的,而不是对权利要求的限制。
附图说明
包含在本公开中并构成本公开的一部分的附图示出了各个方面。在图中:
图1示出了可以实践本公开的示例环境;
图2是示出用于提高图服务器的计算效率的示例方法中涉及的一般阶段的流程图,该图服务器的任务是使图查询保持最新;
图3是示出计算设备的示例物理组件的框图;以及
图4是分布式计算系统的框图。
具体实施方式
以下详细描述参考附图。只要可能,在附图中使用相同的附图标记,并且以下描述涉及相同或相似的元件。虽然可以描述示例,但是修改、改编和其他实现是可能的。例如,可以对附图中示出的元件进行替换、添加或修改,并且可以通过将阶段替换、重新排序或添加到所公开的方法来修改本文描述的方法。因此,以下详细描述不是限制性的,而是由所附权利要求限定适当的范围。示例可以采用硬件实现或完全软件实现或者结合软件和硬件方面的实现的形式,。因此,以下详细描述不应被视为具有限制意义。
本文提供了用于监视关系图的改变的计算上较不密集的方法,以及采用所述方法的系统。近似成员资格查询(AMQ)过滤器与对关系图的图查询结合使用,以提供跨越与查询关联的视图的改变监视。来自由图查询跨越的关系图的每个节点以及视图的索引结构被添加为AMQ过滤器的成员。当对关系图进行改变时,将针对AMQ过滤器查询改变的节点。当改变的节点被注释为AMQ过滤器的候选成员时,可以重新运行图查询以更新与查询相关联的视图。否则,不会重新运行图查询,从而节省计算资源并改进托管和查询关系图的系统以及AMQ过滤器提供的其他好处,这包括改进的存储器存储空间要求。
图1示出了可以实践本公开的示例环境100。客户端设备110与图服务器120通信,图服务器120在图数据库130中维护关系图。关系图将若干实体维护为节点,并将这些节点之间的关系维护为连接相关节点的边,并且图数据库130是可操作地存储一个或多个关系图及其子图,供客户端设备110查询。图服务器120还维护与先前运行的查询相关联的一个或多个AMQ过滤器140(近似成员查询过滤器),以减少用于在图数据库130上重新运行那些查询的调用的数量。
客户端设备110和图服务器120中的每一个都说明了多个计算系统,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板电脑或平板型计算机、笔记本电脑和笔膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、打印机和大型计算机。关于图3和4更详细地讨论这些计算系统的硬件。客户端设备110由用户操作,用户可以是人或自动化系统(例如,“机器人”)。在各个方面,客户端设备110和图服务器120可以由用户访问或彼此本地地和/或通过网络访问,该网络可以包括因特网、局域网(LAN)、用于实体(例如,公司、大学、政府机构)的专用分布式网络、无线自组织网络、虚拟专用网络(VPN)或其他直接数据链路(例如,蓝牙连接、直接有线链路)。
图服务器120托管关系图的图数据库130,关系图具有描述实体和那些实体的一组伴随属性的节点,例如,名称、头衔、年龄、地址等。每个属性可以被视为键/值对——属性的名称及其值。在其他示例中,实体表示为包括文档、会议、通信等的节点,而边表示这些实体之间的关系,例如,人节点与文档节点之间的边表示该人对该文档的作者身份、修改或查看。
图服务器120执行由各种用户提交的图查询。图服务器120还可操作以访问图结构描述,该图结构描述驻留在图数据库130中,图数据库130可以包括各种方面:关系数据库,NoSQL数据库或任何其他数据库。关系图的子图或视图存储在图数据库130中,用于以后分析或在各个方面中后续图查询相同度量。在一些方面,当图服务器120响应于图查询而产生子图时,图服务器120检查将满足图查询的子图是否存在于图数据库130中,并且将通过从图数据库130中取回它来产生该子图,否则图服务器120将通过执行图查询来产生子图,并且可以可选地存储所得到的子图以供以后取回。
客户端设备110请求的图查询跨越图结构的当前状态,但是随着图数据库130被更新或改变,对关系图(或其子图)的各种查询的结果可能受到该更新影响或者不受该更新影响。例如,当给定人员创建新文档时,可能会影响对给定人员周围流行的文档的图的查询,但当不同的人员创建新文档或将表示新人员的节点添加到图结构时,该图表不会受到影响。进而,提交这些查询的用户可能对影响他们的查询的图数据库130的改变感兴趣或不感兴趣。例如,期望图数据库130的“快照”视图的用户(例如,时间t处的视图)可能对将在稍后影响查询的任何更新不感兴趣。在另一示例中,期望图数据库130的“实时”视图的用户对将影响查询的每个更新感兴趣。在另一示例中,期望图数据库130的“周期性”视图的用户对图数据库130的影响查询的一些更新感兴趣,但不是所有更新(例如,在对另一个更新感兴趣之前,等待距离上次更新至少m分钟,等待对图的至少n次改变)。
可以理解,重新运行图查询在计算上是昂贵的,并且当重新运行图查询而没有影响查询跨越的视图的改变时,如果那些处理资源没有用于重新运行图查询(例如,用于不同的任务或保留),则重新运行图查询的机器的功能本来会得到改善。为了减少重新运行没有导致对相关联的视图进行改变的查询的数量,图服务器120可以仅在达到阈值之后更新,这可以增加相关改变已经发生的几率。例如,在将x量的数据或节点添加到关系图之后,或者在自上次重新运行之后的t时间之后,可以响应于对关系图的n次更新而重新运行一个或多个查询。这些方法可以提高已经进行相关改变的几率,但仍然在没有考虑到是否发生了相关改变的情况下导致满足重新运行要求的所有图查询再次运行。
类似地,将重新运行要求集中于特定子图可以减少需要重新运行的查询的数量,但是发现哪些子图受到影响需要额外的计算资源和存储开销。另外,通过将子图与先前查询结果进行比较来跟踪子图的组成的改变使得跟踪单个子图的效率低,因为作为查询结果包括的节点和边可能改变。例如,在查询给定人员的“朋友”的社交网络关系图的情况下,如果添加了新的“朋友”,则相比于旧视图,新视图将包括被认为是给定人员的朋友的附加节点。在类似的示例中,在查询给定人员的“朋友”的社交网络关系图的情况下,如果某些人被作为“朋友”移除,则相比于旧视图,新视图将包括被认为是给定人员的朋友的人员的较少节点。
为了减少重新运行不受对图数据库130所做的改变影响的图查询所花费的计算资源量,图服务器120维护一个或多个AMQ过滤器140(近似成员资格查询过滤器)来代替上面描述的阈值和整理集或者作为阈值和整理集的补充。图服务器120可操作以将AMQ过滤器140与关系图的查询的视图相关联,使得AMQ过滤器140将指示视图何时未改变,并且重新运行查询是不必要的。
图数据库130中的每个节点与唯一标识符相关联,并且响应于查询的作为视图的一部分的节点集合被认为是由相关联的AMQ过滤器140管理的集合的一部分。在一些方面,被考虑但被查询拒绝的节点也包含在AMQ过滤器140的成员集中。在另外的方面,视图中的节点的索引结构被视为AMQ过滤器140的成员集中的成员或者被单独存储,但是与AMQ过滤器140相关联。通过级联展平树结构中的节点的标识符来构造索引结构。响应于在图数据库130中更新、添加或移除节点,图服务器120可操作以查询一个或多个AMQ过滤器140以确定受影响的节点是否是那些AMQ过滤器140的成员集的一部分。在各个方面,受改变影响的节点的标识符作为改变流被馈送到图服务器120,以与一个或多个AMQ过滤器140进行比较。
例如,当返回节点A,B和C的视图(与最近与用户相关联的文档A,B和C相关联)的查询请求最近与用户相关联的文档列表时,使这些节点成为AMQ过滤器140的成员集的一部分。当用户访问DocumentD时,NodeD(与DocumentD相关联)被添加到图数据库130(或者在NodeD与用户节点之间创建边),并且图服务器120可操作以检查AMQ过滤器140是否NodeD潜在地是其成员集的一部分。当AMQ过滤器140返回否定响应(例如,指示NodeD不是其成员集的潜在部分)时,图服务器120将不会重新运行相关联的查询。当AMQ过滤器140返回肯定响应(例如,指示NodeD是其成员集的潜在部分)时,图服务器120可以重新运行相关联的查询或向用户指示对由图查询提供的先前视图的潜在改变存在。
AMQ过滤器140可以提供真肯定,真否定或假肯定作为对其成员集的查询的结果,但不提供假否定作为对其成员集的查询的结果;结果表明候选成员“绝对不在集合中”或“可能在集合中”。通过提供没有假否定的结果集,图服务器120可以确保它接收的任何否定结果是正确的,并且因此可以减少对图数据库130的调用次数,从而改善图服务器120的功能。
然而,可以理解,“可能在集合中”的肯定结果(真或假)可以导致图服务器120调用图数据库130并重新运行查询或要求用户授权重新运行查询。假肯定结果导致查询在视图中没有相关联的改变的情况下运行查询。假肯定的发生率(当不在集合中时“可能不在集合中”)可以由图服务器120通过调整AMQ滤波器140的大小来调整,其中较大的AMQ滤波器140(对于其成员资格被跟踪的给定数量的节点使用更多比特)导致假肯定结果的发生率较低。本领域普通技术人员将能够选择适当的大小以用于AMQ过滤器140,以平衡AMQ过滤器140的存储空间需求和由于假肯定而重新运行不必要的查询所花费的计算资源。在各个方面,基于相应视图中的实体(节点)数量和期望的假肯定率来选择为AMQ滤波器140选择的大小,并且AMQ滤波器140可以在大小方面保持静态或者随着实体添加到成员集或从成员集中删除而是动态的。在一些方面,AMQ过滤器140的大小是恒定的,随着更多查询被提交给图服务器120,这为管理员提供了可预测的存储需求。
AMQ过滤器140提供比特数组,其中存储其成员集的散列。可以使用各种散列算法来将节点的成员资格记录在AMQ过滤器140中。散列算法(也称为“散列函数”)产生数据的单向加密(称为散列),其可以根据本领域普通技术人员已知的各种算法(SHA-2、SHA256、MD5、BLAKE2、Keccak、GOST等)来实现。在各个方面,AMQ过滤器140是布隆过滤器、布谷鸟过滤器、商过滤器或另一概率过滤器,其向图服务器120提供结构以测试节点是否是集合的候选成员。
AMQ过滤器140通过一个或多个散列函数(或相同散列函数的多个初始化)来对作为其集合的成员的节点的标识符进行散列运算以确定数组中的位置(例如,用散列1(hash1)的位置a处的比特,散列2(hash2)的位置b处的比特,散列3(hash3)的位置c处的比特)。然后将数组中指定位置的比特设置为1/TRUE,以将节点记录为由AMQ滤波器140监视的集合的成员。AMQ滤波器140的数组被初始地设置,以使得其所有比特都被设置为零/FALSE,并且当元素被添加到成员集时,由散列函数指定的比特被设置为1/TRUE。如果散列函数指定数组中已经将该比特设置为1/TRUE的位置,则该比特将保持设置为1/TRUE,这为AMQ滤波器140提供100%的重新调用。
当从AMQ过滤器140读取以确定节点是否是记录在数组中的成员集的一部分时,候选节点的标识符被散列,就好像它被添加到数组中一样,并且为该候选节点生成的位置(即,候选位置)针对数组进行逐比特逻辑检查。如果为候选节点生成的所有位置具有1/TRUE的数组中的值,则AMQ滤波器140返回肯定结果(例如,“可能在集合中”)。如果从候选节点生成的一个或多个位置具有零/FALSE的数组中的值,则AMQ滤波器140返回否定结果(例如,“绝对不在该集合中”)。可以意识到,在不脱离本公开的精神的情况下,分配给比特值的含义可以在另一方面反转(例如,初用零/TRUE初始化并且用1/FALSE指示具有成员资格等);AMQ过滤器140可操作以根据各种惯例从基线第一状态经由第二状态跟踪成员资格。
例如,考虑NodeA,NodeB和NodeC的成员集,其使用三个散列函数和三十二比特(位置)的有序数组记录到AMQ过滤器140中。根据每个散列函数对每个节点的标识符进行散列,在数组中产生九个位置(尽管不是所有九个位置都可以是唯一的)。例如,nodeA可以映射到位置1,7和26;nodeB可以映射到到位置5,30和31;以及nodeC可以映射到位置5,12和26;在数组中产生九个位置(七个唯一)。数组中的每个位置(1,5,7,12,26,30和31)处的比特被设置为1/TRUE(第二状态),并且在所有其他位置处,比特保持被设置为零/FALSE(第一状态)。当用户检查NodeD是否是AMQ过滤器140的成员时,根据每个散列函数对NodeD进行散列,在数组中产生三个候选位置——在本示例中的位置1,5和23处。数组中的位置1,5和23处的比特值分别为1/TRUE,1/TRUE和0/FALSE,并且因为至少一个位置的值为零/FALSE(第一状态),所以AMQ过滤器140将返回否定响应,指示NodeD不是成员集的一部分。在另一示例中,当用户检查NodeE是否是AMQ过滤器140的成员时,根据每个散列函数对NodeE进行散列,在数组中产生三个候选位置——在本示例中的位置7,12和30处。在数组中的位置7,12和30处的比特的值都是1/TRUE(第二状态),并且AMQ滤波器140将返回肯定响应(尽管是假肯定),指示NodeE潜在地是集合的成员。
图2是示出用于提高图服务器120的计算效率的示例方法200中涉及的一般阶段的流程图,该图服务器120的任务是使图查询保持最新。方法200使图服务器120能够发现先前进行的图查询的节点或图形树何时已经潜在地改变,并且重新运行该图查询以提供最新结果或警告用户先前提交的查询存在潜在的改变。换句话说,方法200使图服务器120能够避免在发现改变未影响节点或图形树时重新运行图查询。
方法200开始于操作210,其中图服务器120接收图查询。在各个方面,由于各种用户动作,从客户端设备110进行图查询。在一个示例中,将鼠标指针悬停在显示具有特定属性的文档的用户界面元素上启动图查询以使用到这些文档的链接来填充该元素。在第二示例中,经由搜索引擎或个人数字助理(例如,由苹果公司提供的或由微软公司提供的)提交请求,启动图查询以响应该请求。
响应于接收到图查询,在操作215图服务器120跨越关系图以产生图数据库130的一个或多个视图或子图。例如,图查询可以请求组织中具有给定头衔的所有人的列表,这些人已经在组织中至少m个月,已经与某个人一起参与项目,具有对给定文件/目录的访问权限等。在另一个示例中,可以针对从起始位置到达给定目的地的最短路线而查询关系图,以返回一系列街道。在另一示例中,可以针对用户在过去d天中最频繁地与之交互的n个文档来查询包括人和文档的节点的关系图。当跨越图数据库130时,为视图创建索引结构,该索引结构标识跨越的节点及其彼此之间的关系。
在操作220,图查询返回的视图由图服务器120发送到请求客户端。在各个方面,视图以各种格式的列表返回(例如,符合图查询的变量的文档的名称和链接)或以子图返回(例如,查询的关系图的缩小版本)。客户端设备110可以对返回的视图或子图执行附加的查询,分析和格式化操作,以在期望的用户界面中向客户端显示相关数据。
继续到操作225,将作为返回的视图/子图的一部分的节点添加到与图查询相关联的AMQ过滤器140。当首次提交图查询时,创建AMQ过滤器140并将其与图查询相关联。当重新提交图查询(或重新请求运行)时,重新选择已创建并与AMQ过滤器140相关联的AMQ过滤器140,并将重新运行图查询的节点部分添加到AMQ过滤器。在各个方面,当AMQ过滤器140重新运行其关联查询时,除了记录在AMQ过滤器140的数组中的现有节点之外,还可以记录由重新运行查询返回的节点,或者可以重置AMQ过滤器140(例如,将数组的值设置回零/FALSE)以使重新运行结果存储在AMQ滤波器140中而不影响数组的先前结果。
另外,客户端在查询时或之后可以指定客户端是否有兴趣在进行改变时以及以什么频率接收对视图或子图的更新。在客户端已经指示查询将是“快照”或“静态”视图(即,客户端对接收对视图的更新不感兴趣)的方面中,方法200可以在不为查询创建AMQ过滤器140以跟踪潜在的改变的情况下结束。在其他方面,为查询创建AMQ过滤器140,而不管客户端当前声明的对接收更新的兴趣如何,以使得可以向客户端警告潜在的改变,从而指示对接收潜在改变的视图/子图的兴趣。
AMQ滤波器140包括k个散列函数(例如,用k个键初始化的一个散列算法)和m个比特的成员资格数组。在各个方面,选择作为视图的一部分的每个节点的标识符、被视为视图的潜在部分的节点的标识符、由边连接到视图的节点部分或被视为视图的潜在部分的节点的标识符和/或索引结构用于AMQ过滤器140中的成员资格。所选择的标识符被馈送到每个散列函数,散列函数返回成员资格数组中的位置。每个返回位置处的比特被设置为指示成员资格(例如,将比特设置为1/TRUE),并且任何重叠/重复位置导致比特被保持设置为1/TRUE。
在一些方面中由查询跨越的视图或子图的索引结构与AMQ过滤器140相关联地被记录。以树结构跨越关系图;其他叶节点所依赖的根节点沿着边从图服务器120向外跨越,所述边充当从一个节点到下一个节点的分支。根据树结构收集视图中的每个节点的标识符,并且结构折叠,例如,级联树结构以创建展平化的索引结构并对其进行散列以产生标准化的大小。记录索引结构允许跟踪视图的改变,例如,向视图添加新节点,该节点不是AMQ过滤器140的原始成员集的一部分,但潜在地影响由查询返回的视图。
在一个示例中,索引结构允许与发现社交网络中的给定个体的“朋友”相关联的AMQ过滤器140发现何时将另外的朋友添加到个人的社交网络。该示例中的新朋友的节点不是AMQ过滤器140的成员,但是其添加到关系图将影响视图或子图的树结构;导致索引结构发生突变。
运行操作210,215,220和225以针对相关联的查询而初始化AMQ过滤器140。在针对相关联的查询而初始化AMQ过滤器140之后,方法200将等待接收影响查询被寻址的关系图的改变。如将理解的,一个改变可以影响多个AMQ滤波器140,并且尽管通常关于单个AMQ滤波器140讨论方法200,但是可以响应于对关系图的改变而串行或并行地操作多个AMQ滤波器140。
在操作230,接收对关系图的改变。在各个方面,改变构成节点的添加或移除;添加,移除或修改节点的属性;或者加强,削弱,创建或破坏在一个或多个节点之间的边。例如,当提升员工以管理其他员工时,可以通过向代表该员工的节点添加经理属性并在该员工与向该员工的直接报告(以及代表提升的其他改变)之间创建边来改变该员工所属组织的关系图。对图数据库130的每个改变进行解析以确定受影响的节点(直接或经由到这些节点的边),并且组织这些节点的标识符以形成改变流。
改变流包括受到对图数据库130的改变影响的节点的各个标识符,并且在一些方面包括对子图的索引结构或查询的视图的改变或突变。改变流可以表示单个改变,或者在一段时间内接收的或影响至少阈值数量的节点的几个批量改变。在各个方面,索引结构是源自根节点的基于树的结构,其中跨越发起于根节点,并且包括响应于图查询作为叶节点的其他节点。索引可以通过根据树结构级联节点的标识符(例如,使树变平)并且压缩(例如,经由一个或多个散列函数操作)得到的索引结构来构造。
在操作235,将改变流与AMQ过滤器140进行比较。改变流包含受改变影响的节点或索引结构的标识符,并且查询AMQ过滤器140以确定该标识符是否看起来是AMQ过滤器140中记录的集合中的成员。对从改变流接收的标识符进行散列,就好像它被添加到AMQ过滤器140的成员集一样,以在数组中产生若干位置,其中相应节点或索引结构将被记录在该若干位置处。如果每个位置已经指示它已被记录到,则AMQ过滤器140返回肯定结果,指示与标识符相关联的节点或索引结构是作为AMQ过滤器140中记录的集合的成员的候选者。如果数组中的至少一个位置指示它尚未被记录到,则AMQ过滤器140返回否定结果,指示与标识符相关联的节点或索引结构不是记录在AMQ滤波器140中的集合的成员。
判定240根据操作235中来自AMQ过滤器140的响应来引导方法200的流程。如上所述,AMQ过滤器140用“可能在集合中”(真肯定或假肯定响应)或“绝对不在集合中”(真否定响应)来响应查询。当返回肯定响应时,方法200前进到判定245。当返回否定响应时,方法200返回到操作230以等待对关系图的下一次改变。
在判定245,确定客户端是否批准重新运行图查询。在各个方面,可以通过向客户端设备110发送指示存在可用于客户端的查询的潜在更新的请求来寻求客户端的批准。在其他方面,客户端可以设置关于何时自动批准重新运行查询或何时经由警报寻求客户端的许可的重新运行批准规则。例如,客户端可以设置返回肯定结果的标识符的数量的阈值,忽略潜在更新除非索引结构也已经改变的规则,更新/警报之间的最小时间,客户端是否需要静态视图,生成的最后一个视图与客户端感兴趣的改变之间的阈值时间段等。当确定客户端批准重新运行图查询时,方法200前进到操作250。当确定客户端不批准重新运行图查询,方法200可以等待直到客户端批准重新运行图查询(例如,以满足时间阈值或接收对发送到客户端设备的警报的响应)为止并且可以响应于接收到对关系图的新改变而返回到操作230。
在操作250,再次运行图查询,并且将重新运行图查询产生的视图与由图查询的先前运行产生的视图进行比较。在判定255确定视图是否等同。在各个方面,将每个视图的索引结构彼此进行比较以确定索引结构是否相同,其中如果索引相同,则确定视图是等同的。例如,如果AMQ过滤器140返回假肯定,并且改变流中指示的节点实际上不是AMQ过滤器140的成员集的一部分,则针对图查询的两次运行的视图中的节点的索引将是相同的。
在另一示例中,如果AMQ过滤器140返回真肯定,并且改变流中指示的节点是AMQ过滤器140的成员集的一部分,但是该改变不足以改变索引结构,则视图被认为是等同的。例如,对于给定用户对十个最多查看的文档的查询,如果改变交换了第十一最多查看的文档和第十二最多查看的文档的顺序,则可以将节点肯定地标识为AMQ过滤器140的成员集的一部分,但前十个文档的视图将保持不受影响;视图被认为是等同的。类似地,在给定用户对十个最多查看的文档的查询的另一个示例中,如果改变影响第五最多查看文档的属性,但是不改变前十个文档的顺序,则前十个文档的视图将不受影响,视图被视为是等同的。
响应于确定重新运行视图和先前视图是等同的,方法200返回到操作230以等待关系图中的下一个改变。响应于确定重新运行视图和先前视图不等同,方法200前进到操作260以将改变暴露给客户端。在各个方面,通过将最新视图发送到客户端来将改变暴露给客户端。在其他方面,通过向客户端设备110发送改变通知来将改变暴露给客户端。客户端可以响应改变通知并请求图服务器120将最新视图发送到接收设备,或者用“忽略”或“关闭”命令而进行响应(或不响应)而继续,而不接收最新视图。
然后,方法200可选地进行到操作265以更新AMQ过滤器140的成员资格。在一些方面,因为AMQ过滤器140具有完美的重新调用并且成员不能从AMQ过滤器140的数组中丢弃,所以AMQ过滤器140被重新初始化并且当前成员集被记录到数组中,如在操作210,215,220和225中那样。在其他方面,当改变指示已将新成员添加到视图或子图中时,添加该成员到数组,并忽略修改数组成员或从数组中移除成员的任何改变。
然后,方法200返回到操作230以等待对关系图进行下一个改变。
虽然已经在与在计算机上的操作系统上运行的应用程序一起执行的程序模块的一般上下文中描述了实现方式,但是本领域技术人员将认识到,这些方面也可以与其他程序模块一起实现。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。
这里描述的方面和功能可以通过多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板电脑或平板型计算机、笔记本计算机和膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机和大型计算机。
另外,根据一个方面,本文描述的方面和功能在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和取回以及各种处理功能通过分布式计算网络(例如因特网或内联网)彼此远程地操作。根据一个方面,通过车载计算设备显示器或通过与一个或多个计算设备相关联的远程显示单元显示各种类型的用户界面和信息。例如,在用户界面和各种类型的信息被投影到的墙壁表面上显示和交互各种类型的用户界面和信息。与实践实现方式的多个计算系统的交互包括击键输入、触摸屏输入、语音或其他音频输入、手势输入(其中相关联的计算设备配备有用于捕获和解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能)等。
图3和图4以及相关描述提供了对其中实践示例的各种操作环境的讨论。然而,关于图3和图4示出和讨论的设备和系统是出于示例和说明的目的,而不是限制用于实践本文所述方面的大量计算设备配置。
图3是示出计算设备300的物理组件(即,硬件)的框图,利用其可以实践本公开的示例。在基本配置中,计算设备300包括至少一个处理单元302和系统存储器304。根据一个方面,根据计算设备的配置和类型,系统存储器304包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存或这些存储器的任何组合。根据一个方面,系统存储器304包括操作系统305和适合于运行软件应用程序350的一个或多个程序模块306。根据一个方面,系统存储器304包括与先前提交的图查询相关联的一个或多个AMQ过滤器140。例如,操作系统305适合于控制计算设备300的操作。此外,各方面结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图3中由虚线308内的那些组件示出。根据一个方面,计算设备300具有附加特征或功能。例如,根据一个方面,计算设备300包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储在图3中由可移动存储设备309和不可移动存储设备310示出。
如上所述,根据一个方面,多个程序模块和数据文件存储在系统存储器304中。当在处理单元302上执行时,程序模块306(例如,AMQ过滤器140的处理程序)执行的处理包括但不限于图2所示的方法200的一个或多个阶段。根据一个方面,根据示例使用其他程序模块,并且包括诸如电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片演示应用程序、绘图或计算机辅助应用程序等之类的应用程序。
根据一个方面,计算设备300具有一个或多个输入设备312,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面还包括输出设备314,诸如显示器、扬声器、打印机等。上述设备是示例,可以使用其他设备。根据一个方面,计算设备300包括允许与其他计算设备318通信的一个或多个通信连接316。合适的通信连接316的示例包括但不限于射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB),并行和/或串行端口。
这里使用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以用于存储例如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质。系统存储器304、可移动存储设备309和不可移动存储设备310都是计算机存储介质示例(即,存储器存储)。根据一个方面,计算机存储介质包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备或可以用于存储信息并且可以由计算设备300访问的任何其他制品。根据一个方面,任何这样的计算机存储介质是计算设备300的一部分。计算机存储介质不包括载波或其他传播的数据信号。
根据一个方面,通信介质由计算机可读指令、数据结构、程序模块或已调制数据信号中的其他数据(诸如载波或其他传输机制)来体现,并且包括任何信息传递介质。根据一个方面,术语“已调制数据信号”描述了具有以对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。
图4示出了用于在监视如上所述的关系图的改变时提高计算效率的系统的体系结构的一个示例。与AMQ过滤器140相关联地开发,交互或编辑的内容能够存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务422、网络门户424、邮箱服务426、即时消息传递存储428或社交网站430来存储各种文档。服务器420可操作以使用这些类型的系统等等中的任何一种来提高监视关系图的改变的计算效率,如本文所述。根据一个方面,服务器420将AMQ过滤器140暴露给客户端405a,b,c。作为一个示例,服务器420是通过web或另一网络440提供AMQ过滤器140的web服务器。作为示例,客户端计算设备被实现并体现在个人计算机405a、平板计算设备405b或移动计算设备405c(例如,智能电话)或其他计算设备中。
例如,以上参考根据方面的方法、系统和计算机程序产品的框图和/或操作图示描述了实现方式。框中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个示例的描述和说明不旨在以任何方式限制或限制所要求保护的范围。本申请中提供的方面,示例和细节被认为足以传达占有并使其他人能够制作和使用最佳模式。实现方式不应被解释为限于本申请中提供的任何方面、示例或细节。无论是组合地还是单独地示出和描述,旨在选择性地包括或省略各种特征(结构和方法)以产生具有特定特征集的示例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入本申请中体现的总体发明构思的更广泛方面的精神内的变型、修改和替换示例,它们不脱离更宽泛的范围。

Claims (15)

1.一种用于提高监视关系图的改变的计算效率的方法,包括:
在托管所述关系图的图服务器处从客户端设备接收图查询;
运行所述图查询以跨越所述关系图而生成所述关系图的视图;
将由所述图查询所跨越的节点的标识记录在与所述图查询相关联的成员资格集中;
在所述图服务器处接收影响所述关系图的改变流,所述改变流包括已经改变的给定节点;
确定所述给定节点是否被记录在所述成员资格集中;
响应于确定所述给定节点被记录在所述成员资格集中:
重新运行所述图查询以跨越所述关系图并产生新视图;
确定所述新视图是否等同于所述视图;并且
响应于确定所述新视图不等同于所述视图,将所述关系图的改变暴露给所述客户端设备。
2.如权利要求1所述的方法,还包括:
其中,将由所述图查询跨越的节点的标识记录在与所述图查询相关联的所述成员资格集中包括在AMQ过滤器中,其包括:
初始化所述AMQ滤波器的成员资格数组,所述成员资格数组包括多个比特,其中,每个比特被设置为第一状态;
接收所述图查询所跨越的节点的标识符;
对所述标识符进行散列以产生所述标识符中的每个的位置值;以及
通过将位于所述成员资格数组中的每个位置值处的、所述多个比特中的一个比特设置为第二状态,来将所述节点记录在所述成员资格数组中;
其中,确定所述给定节点是否被记录在所述成员资格集中包括用所述给定节点查询所述AMQ过滤器,其包括:
接收所述给定节点的给定标识符;
对所述给定标识符进行散列以产生所述成员资格数组中所述给定节点的候选位置;以及
确定所述成员资格数组中所述候选位置处的每个比特被设置的状态;以及
响应于确定所述成员资格数组中所述候选位置处的每个比特被设置为所述第二状态,概率性地确定所述给定节点被记录在所述成员资格集中。
3.如权利要求2所述的方法,还包括:
响应于确定所述成员资格数组中所述候选位置处的至少一个比特被设置为所述第一状态,返回对查询所述AMQ过滤器的否定响应并且不将所述改变暴露给所述客户端设备。
4.如权利要求1所述的方法,其中,所述关系图的所述改变影响多个节点,所述多个节点包括所述给定节点。
5.如权利要求1所述的方法,还包括:
接收所述视图的索引结构;以及
将所述索引结构记录在所述成员资格集中。
6.如权利要求5所述的方法,其中,所述索引结构包括在展平树结构中由所述图查询所跨越的节点的标识符。
7.如权利要求1所述的方法,其中,将所述改变暴露给所述客户端设备包括将所述新视图发送到所述客户端设备。
8.如权利要求1所述的方法,其中,将所述改变暴露给所述客户端设备包括向所述客户端设备发送所述新视图可用的通知。
9.一种用于提高监视关系图的改变的计算效率的系统,包括:
处理器;以及
存储器存储设备,其包括在被执行时可操作以实现以下操作的指令:
维护成员资格数组;
接收成员节点标识符,并作为响应将所述成员节点标识符记录在所述成员资格数组中;
接收候选节点标识符,并作为响应确定所述候选节点标识符是否被记录在所述成员资格数组中;
响应于确定所述候选节点标识符被记录在所述成员资格数组中:
运行图查询以产生所述关系图的视图;
将所述视图与所述图查询产生的所述关系图的先前视图进行比较,以确定所述查询是否受到所述关系图的改变的影响;以及
响应于所述视图和所述先前视图不匹配,将所述关系图的所述改变暴露给客户端。
10.如权利要求9所述的系统,其中,所述成员节点标识符是响应于所述图查询被运行而接收的,并且所述成员节点标识符是与所述图查询所跨越的所述关系图中的节点相关联的。
11.如权利要求9所述的系统,其中,所述候选节点标识符被包括在响应于影响所述关系图的所述改变而接收的改变流中。
12.如权利要求9所述的系统,其中,所述系统可操作以通过将第一索引结构与第二索引结构进行比较来确定所述查询是否受到所述关系图的所述改变的影响,其中,所述第一索引结构是包括在所述先前视图中的节点的树结构,并且其中,所述第二索引结构是包括在所述视图中的节点的树结构;
响应于所述第一索引结构等同于所述第二索引结构,确定所述查询不受所述改变的影响;以及
响应于所述第一索引结构不等同于所述第二索引结构,确定所述查询受所述改变的影响。
13.如权利要求9所述的系统,其中,为了将所述关系图的所述改变暴露给所述客户端,所述系统还可操作用于:
将改变通知发送到与所述客户端相关联的客户端设备;
响应于所述改变通知,从所述客户端设备接收对所述视图的请求;以及
响应于接收到所述请求,将所述视图发送到所述客户端设备。
14.如权利要求9所述的系统,其中,所述系统还可操作用于:
提供一个或多个散列函数,所述一个或多个散列函数中的每个可操作以输出所述成员资格数组中的位置;
其中,所述成员资格数组包括以第一状态初始化的有序的多个比特;
其中,为了在所述成员资格数组中记录所述成员节点标识符,所述系统还可操作用于:
使用一个或多个散列函数对所述成员节点标识符进行散列以产生一个或多个成员位置;以及
将所述一个或多个成员位置处的、所述有序的多个比特中的一个或多个比特设置为第二状态;并且
其中,为了确定所述候选节点标识符是否被记录在所述成员资格数组中,所述系统还可操作用于:
用所述一个或多个散列函数对所述候选节点标识符进行散列以产生一个或多个候选位置;
确定所述成员资格数组中所述候选位置处的每个比特是否被设置为所述第二状态;以及
响应于确定所述成员资格数组中所述候选位置处的每个比特被设置为所述第二状态,确定所述候选节点标识符被记录在所述成员资格数组中。
15.一种计算机可读存储设备,其包括用于提高监视关系图的改变的计算效率的指令,包括:
在托管所述关系图的图服务器处从客户端设备接收图查询;
运行所述图查询以跨越所述关系图而生成所述关系图的视图;
将AMQ过滤器与所述图查询相关联,其包括:
初始化包括多个比特的成员资格数组,其中,每个比特被设置为第一状态;
接收所述图查询所跨越的节点的标识符;
对所述标识符进行散列以产生所述标识符中的每个的位置值,其中,每个所述位置值标识所述成员资格数组中的位置处的比特;以及
通过将所述多个比特中的一个或多个比特设置为第二状态来将所述节点记录在所述成员资格数组中,其中,设置为所述第二状态的所述一个或多个比特对应于所述位置值;
在所述图服务器处接收影响所述关系图的改变流,所述改变流包括已经改变的给定节点;
使用所述给定节点查询所述AMQ过滤器,其包括:
接收所述给定节点的给定标识符;
对所述给定标识符进行散列以产生所述成员资格数组中所述给定节点的候选位置;以及
确定所述成员资格数组中所述候选位置处的每个比特被设置的状态;以及
响应于确定所述成员资格数组中所述候选位置处的任何比特被设置为所述第一状态,防止所述图查询被重新运行。
CN201780066690.2A 2016-10-28 2017-10-23 改变监测跨图查询 Active CN110168523B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/338,290 2016-10-28
US15/338,290 US10545945B2 (en) 2016-10-28 2016-10-28 Change monitoring spanning graph queries
PCT/US2017/057775 WO2018080942A1 (en) 2016-10-28 2017-10-23 Change monitoring spanning graph queries

Publications (2)

Publication Number Publication Date
CN110168523A true CN110168523A (zh) 2019-08-23
CN110168523B CN110168523B (zh) 2023-07-21

Family

ID=60263080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780066690.2A Active CN110168523B (zh) 2016-10-28 2017-10-23 改变监测跨图查询

Country Status (4)

Country Link
US (1) US10545945B2 (zh)
EP (1) EP3532949A1 (zh)
CN (1) CN110168523B (zh)
WO (1) WO2018080942A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100824A (zh) * 2020-08-26 2020-12-18 西安工程大学 一种改进的布谷鸟算法及优化机器人结构参数的方法
CN113010596A (zh) * 2021-03-19 2021-06-22 上海达梦数据库有限公司 一种动态性能视图的构建方法、装置、设备及存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US10810210B2 (en) * 2017-05-12 2020-10-20 Battelle Memorial Institute Performance and usability enhancements for continuous subgraph matching queries on graph-structured data
US11232139B2 (en) * 2018-06-29 2022-01-25 Lucid Software, Inc. Custom interactions with visualizations
US10860602B2 (en) 2018-06-29 2020-12-08 Lucid Software, Inc. Autolayout of visualizations based on contract maps
US10860603B2 (en) 2018-06-29 2020-12-08 Lucid Software, Inc. Visualization customization
US11368446B2 (en) * 2018-10-02 2022-06-21 International Business Machines Corporation Trusted account revocation in federated identity management
WO2020172069A1 (en) 2019-02-22 2020-08-27 Lucid Software, Inc. Reversible data transforms
US11100167B2 (en) * 2019-05-06 2021-08-24 Advanced New Technologies Co., Ltd. Obtaining dynamic embedding vectors of nodes in relationship graphs
US11100173B2 (en) 2019-06-18 2021-08-24 Lucid Software, Inc. Autolayout of visualizations based on graph data
US11216455B2 (en) 2019-08-24 2022-01-04 International Business Machines Corporation Supporting synergistic and retrofittable graph queries inside a relational database
US11263105B2 (en) 2019-11-26 2022-03-01 Lucid Software, Inc. Visualization tool for components within a cloud infrastructure
US11169671B2 (en) 2019-11-26 2021-11-09 Lucid Software, Inc. Alteration of a source data visualization based on user input

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755685A (zh) * 2004-09-30 2006-04-05 微软公司 查询图
US20090144258A1 (en) * 2007-11-30 2009-06-04 Owen Taylor Systems and methods for query processing
US20090216728A1 (en) * 2008-02-26 2009-08-27 Jeffrey Brainerd Graphic representations of data relationships
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US20120173820A1 (en) * 2010-12-30 2012-07-05 Venkateshwaran Venkataramani Distributed Cache for Graph Data
US20120303627A1 (en) * 2011-05-23 2012-11-29 Kimberly Keeton Responding to a query in a data processing system
US20130232452A1 (en) * 2013-02-01 2013-09-05 Concurix Corporation Force Directed Graph with Time Series Data
US20140172914A1 (en) * 2012-12-14 2014-06-19 Microsoft Corporation Graph query processing using plurality of engines
CN104205086A (zh) * 2012-03-19 2014-12-10 阿尔卡特朗讯 使用查询语言修改用于web服务的访问控制的方法
US8914404B1 (en) * 2011-03-29 2014-12-16 Emc Corporation Techniques for performing view indication management
CN104769607A (zh) * 2012-11-09 2015-07-08 微软公司 利用预定义的查询来过滤视图
US20150242402A1 (en) * 2014-02-24 2015-08-27 Microsoft Corporation Persisted enterprise graph queries
CN104903886A (zh) * 2012-07-23 2015-09-09 脸谱公司 基于社交图谱信息的结构化搜索查询
US20150324410A1 (en) * 2014-05-07 2015-11-12 International Business Machines Corporation Probabilistically finding the connected components of an undirected graph
US20150363461A1 (en) * 2014-06-17 2015-12-17 Google Inc. Real-time saved-query updates for a large graph
WO2016091174A1 (zh) * 2014-12-09 2016-06-16 华为技术有限公司 图数据的搜索方法和装置

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427234B1 (en) 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
US6397206B1 (en) 1999-12-15 2002-05-28 International Business Machines Corporation Optimizing fixed, static query or service selection and execution based on working set hints and query signatures
US6556983B1 (en) 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US7424498B1 (en) 2003-06-30 2008-09-09 Data Domain, Inc. Probabilistic summary data structure based encoding for garbage collection
US7958132B2 (en) 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
US9171100B2 (en) 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
US7363299B2 (en) 2004-11-18 2008-04-22 University Of Washington Computing probabilistic answers to queries
US9129038B2 (en) 2005-07-05 2015-09-08 Andrew Begel Discovering and exploiting relationships in software repositories
US7925649B2 (en) * 2005-12-30 2011-04-12 Google Inc. Method, system, and graphical user interface for alerting a computer user to new results for a prior search
US20070174309A1 (en) 2006-01-18 2007-07-26 Pettovello Primo M Mtreeini: intermediate nodes and indexes
US20070282470A1 (en) 2006-06-05 2007-12-06 International Business Machines Corporation Method and system for capturing and reusing intellectual capital in IT management
US8086598B1 (en) 2006-08-02 2011-12-27 Hewlett-Packard Development Company, L.P. Query optimizer with schema conversion
US7890518B2 (en) 2007-03-29 2011-02-15 Franz Inc. Method for creating a scalable graph database
US7899861B2 (en) 2007-04-02 2011-03-01 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven stream processing
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US8326847B2 (en) 2008-03-22 2012-12-04 International Business Machines Corporation Graph search system and method for querying loosely integrated data
US8285748B2 (en) 2008-05-28 2012-10-09 Oracle International Corporation Proactive information security management
US8468142B2 (en) 2008-08-06 2013-06-18 Fujitsu Limited Caching query results with binary decision diagrams (BDDs)
US8156129B2 (en) 2009-01-15 2012-04-10 Microsoft Corporation Substantially similar queries
US8250048B2 (en) 2009-04-20 2012-08-21 Oracle International Corporation Access control for graph data
US8321430B2 (en) 2009-05-04 2012-11-27 Sap Portals Israel Ltd. Resource efficient handling change notifications in graph structures
WO2010130083A1 (en) 2009-05-12 2010-11-18 Shanghai Hewlett-Packard Co., Ltd Document key phrase extraction method
US8423538B1 (en) 2009-11-02 2013-04-16 Google Inc. Clustering query refinements by inferred user intent
US20110246439A1 (en) 2010-04-06 2011-10-06 Microsoft Corporation Augmented query search
WO2011142134A1 (ja) 2010-05-14 2011-11-17 日本電気株式会社 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
US10380186B2 (en) 2010-05-26 2019-08-13 Entit Software Llc Virtual topological queries
US9009810B2 (en) 2010-05-28 2015-04-14 Nokia Corporation Method and apparatus for providing reactive authorization
WO2011151500A1 (en) 2010-05-31 2011-12-08 Helsingin Yliopisto Arrangement and method for finding relationships among data
US8983990B2 (en) 2010-08-17 2015-03-17 International Business Machines Corporation Enforcing query policies over resource description framework data
US8751433B2 (en) 2010-12-15 2014-06-10 Microsoft Corporation Efficient probabilistic reasoning over semantic data
US9158847B1 (en) 2011-07-19 2015-10-13 Kyndi Inc. Cognitive memory encoding networks for fast semantic indexing storage and retrieval
US9183407B2 (en) 2011-10-28 2015-11-10 Microsoft Technology Licensing Llc Permission based query processing
US20130179467A1 (en) 2012-01-11 2013-07-11 Google Inc. Calculating Property Caching Exclusions In A Graph Evaluation Query Language
US8566373B2 (en) 2012-02-07 2013-10-22 Alcatel Lucent Probabilistic fingerprint checking for preventing data leakage
WO2013149381A1 (en) 2012-04-05 2013-10-10 Microsoft Corporation Platform for continuous graph update and computation
US9922133B2 (en) 2012-04-16 2018-03-20 Entit Software Llc Live topological query
US8819078B2 (en) 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
US9071533B2 (en) 2012-07-31 2015-06-30 Cisco Technology, Inc. Multicast group assignment using probabilistic approximations
US11468218B2 (en) 2012-08-28 2022-10-11 Synopsys, Inc. Information theoretic subgraph caching
US20140067781A1 (en) 2012-08-31 2014-03-06 Scott W. Wolchok Graph Query Language API Querying and Parsing
US9031932B2 (en) 2012-09-06 2015-05-12 Oracle International Corporation Automatic denormalization for analytic query processing in large-scale clusters
US9104728B2 (en) 2012-09-25 2015-08-11 Ebay Inc. Query language to traverse a path in a graph
EP2731023B1 (en) 2012-11-12 2015-03-25 Software AG Method and system for processing graph queries
US20140136553A1 (en) 2012-11-13 2014-05-15 International Business Machines Corporation Appliance for accelerating graph database management and analytics systems
US20150310129A1 (en) 2013-01-09 2015-10-29 Hitachi, Ltd. Method of managing database, management computer and storage medium
US9361587B2 (en) 2013-03-01 2016-06-07 International Business Machines Corporation Authoring system for bayesian networks automatically extracted from text
US9037571B1 (en) 2013-03-12 2015-05-19 Amazon Technologies, Inc. Topology service using closure tables and metagraphs
US10032195B2 (en) 2013-03-13 2018-07-24 Airline Tariff Publishing Company System, method and computer program product for providing a fare analytic engine
US10642891B2 (en) 2013-04-12 2020-05-05 Avigilon Fortress Corporation Graph matching by sub-graph grouping and indexing
US9367880B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US9330183B2 (en) 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US9483580B2 (en) 2013-06-11 2016-11-01 International Business Machines Corporation Estimation of closeness of topics based on graph analytics
US20150081741A1 (en) 2013-09-16 2015-03-19 GraphSQL, Inc. Incremental graph view maintenance
US9367809B2 (en) 2013-10-11 2016-06-14 Accenture Global Services Limited Contextual graph matching based anomaly detection
US9218169B2 (en) 2013-11-19 2015-12-22 Google Inc. Callpath finder
US20150169758A1 (en) 2013-12-17 2015-06-18 Luigi ASSOM Multi-partite graph database
EP2894587B1 (en) 2014-01-09 2019-01-09 Fujitsu Limited Stored data access controller
US10152557B2 (en) 2014-01-31 2018-12-11 Google Llc Efficient similarity ranking for bipartite graphs
EP2911069A1 (en) 2014-02-20 2015-08-26 Fujitsu Limited Event propagation in graph data
WO2015192090A1 (en) 2014-06-13 2015-12-17 Clados Management LLC System and method for utilizing a logical graphical model for scenario analysis
US9547728B2 (en) 2014-06-18 2017-01-17 Sap Ag Graph traversal operator and extensible framework inside a column store
US10255244B2 (en) 2014-08-01 2019-04-09 Facebook, Inc. Search results based on user biases on online social networks
US9613185B2 (en) 2014-08-20 2017-04-04 International Business Machines Corporation Influence filtering in graphical models
US9690792B2 (en) 2014-08-26 2017-06-27 International Business Machines Corporation Access control for unprotected data storage system endpoints
US10019190B2 (en) 2014-10-15 2018-07-10 Nec Corporation Real-time abnormal change detection in graphs
US10169355B2 (en) 2014-10-27 2019-01-01 Tata Consultancy Services Limited Knowledge representation in a multi-layered database
US9916187B2 (en) 2014-10-27 2018-03-13 Oracle International Corporation Graph database system that dynamically compiles and executes custom graph analytic programs written in high-level, imperative programming language
US11836211B2 (en) 2014-11-21 2023-12-05 International Business Machines Corporation Generating additional lines of questioning based on evaluation of a hypothetical link between concept entities in evidential data
US20160189218A1 (en) 2014-12-30 2016-06-30 Yahoo, Inc. Systems and methods for sponsored search ad matching
US9940472B2 (en) 2015-01-08 2018-04-10 International Business Machines Corporation Edge access control in querying facts stored in graph databases
US9348880B1 (en) 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US9378241B1 (en) 2015-09-18 2016-06-28 Linkedin Corporation Concatenated queries based on graph-query results
US20170206276A1 (en) 2016-01-14 2017-07-20 Iddo Gill Large Scale Recommendation Engine Based on User Tastes
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10423652B2 (en) 2016-08-08 2019-09-24 Baidu Usa Llc Knowledge graph entity reconciler
US10672155B2 (en) 2016-08-17 2020-06-02 International Business Machines Corporation Non-linear, multi-resolution visualization of a graph
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US20180113950A1 (en) 2016-10-24 2018-04-26 Hewlett Packard Enterprise Development Lp Queryng graph topologies
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755685A (zh) * 2004-09-30 2006-04-05 微软公司 查询图
US20090144258A1 (en) * 2007-11-30 2009-06-04 Owen Taylor Systems and methods for query processing
US20090216728A1 (en) * 2008-02-26 2009-08-27 Jeffrey Brainerd Graphic representations of data relationships
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US20120173820A1 (en) * 2010-12-30 2012-07-05 Venkateshwaran Venkataramani Distributed Cache for Graph Data
US8914404B1 (en) * 2011-03-29 2014-12-16 Emc Corporation Techniques for performing view indication management
US20120303627A1 (en) * 2011-05-23 2012-11-29 Kimberly Keeton Responding to a query in a data processing system
CN104205086A (zh) * 2012-03-19 2014-12-10 阿尔卡特朗讯 使用查询语言修改用于web服务的访问控制的方法
CN104903886A (zh) * 2012-07-23 2015-09-09 脸谱公司 基于社交图谱信息的结构化搜索查询
CN104769607A (zh) * 2012-11-09 2015-07-08 微软公司 利用预定义的查询来过滤视图
US20140172914A1 (en) * 2012-12-14 2014-06-19 Microsoft Corporation Graph query processing using plurality of engines
US20130232452A1 (en) * 2013-02-01 2013-09-05 Concurix Corporation Force Directed Graph with Time Series Data
US20150242402A1 (en) * 2014-02-24 2015-08-27 Microsoft Corporation Persisted enterprise graph queries
US20150324410A1 (en) * 2014-05-07 2015-11-12 International Business Machines Corporation Probabilistically finding the connected components of an undirected graph
US20150363461A1 (en) * 2014-06-17 2015-12-17 Google Inc. Real-time saved-query updates for a large graph
WO2016091174A1 (zh) * 2014-12-09 2016-06-16 华为技术有限公司 图数据的搜索方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100824A (zh) * 2020-08-26 2020-12-18 西安工程大学 一种改进的布谷鸟算法及优化机器人结构参数的方法
CN112100824B (zh) * 2020-08-26 2024-02-27 西安工程大学 一种改进的布谷鸟算法及优化机器人结构参数的方法
CN113010596A (zh) * 2021-03-19 2021-06-22 上海达梦数据库有限公司 一种动态性能视图的构建方法、装置、设备及存储介质
CN113010596B (zh) * 2021-03-19 2024-02-23 上海达梦数据库有限公司 一种动态性能视图的构建方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20180121482A1 (en) 2018-05-03
US10545945B2 (en) 2020-01-28
WO2018080942A1 (en) 2018-05-03
EP3532949A1 (en) 2019-09-04
CN110168523B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN110168523A (zh) 改变监测跨图查询
US11074560B2 (en) Tracking processed machine data
US20230289661A1 (en) Root cause discovery engine
US9798882B2 (en) Real-time model of states of monitored devices
CN111885040A (zh) 分布式网络态势感知方法、系统、服务器及节点设备
US20120054129A1 (en) Method for classification of objects in a graph data stream
CN111046237B (zh) 用户行为数据处理方法、装置、电子设备及可读介质
US11074310B2 (en) Content-based management of links to resources
US20130185106A1 (en) Using social media objects for content curation, management, and engagement facilitation
US9208504B2 (en) Using geographical location to determine element and area information to provide to a computing device
US11380443B2 (en) Predicting non-communicable disease with infectious risk factors using artificial intelligence
US11799835B2 (en) Predicting user-file interactions
TW202123118A (zh) 基於隱私保護的關係網路構建方法及裝置
CN104636130B (zh) 用于生成事件树的方法和系统
US20230244812A1 (en) Identifying Sensitive Data Risks in Cloud-Based Enterprise Deployments Based on Graph Analytics
US11789935B2 (en) Data aggregation with microservices
US10511606B2 (en) Method of discovering and modeling actor and asset relationships across a cloud ecosystem
US11593406B2 (en) Dynamic search parameter modification
US20210326332A1 (en) Temporal directed cycle detection and pruning in transaction graphs
CN109450864B (zh) 一种安全检测方法、装置和系统
US11886229B1 (en) System and method for generating a global dictionary and performing similarity search queries in a network
US20220164388A1 (en) Dfs-based cycle detection on pregel model
US11874730B2 (en) Identifying log anomaly resolution from anomalous system logs
US20210286819A1 (en) Method and System for Operation Objects Discovery from Operation Data
CN112732724A (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