发明名称 Graph database query handling method and apparatus
摘要 A querying method for a database of graph data encoded as triples being stored on storage servers. The method including dividing a query into a plurality of result criteria triple patterns which query results match, each triple pattern element being either: a single value triple pattern element; or a variable value triple pattern element specifying an ID of a variable. The method includes forming one or more sub-queries each having triple patterns having the same single value triple pattern element or specifying the same ID of a variable as a variable value triple pattern element, issuing each formed sub-query to each of the servers, and receiving triples satisfying a sub-query as results from the servers and using the sub-query results in as a response to the query.
申请公布号 US9454567(B2) 申请公布日期 2016.09.27
申请号 US201414229158 申请日期 2014.03.28
申请人 FUJITSU LIMITED 发明人 Hu Bo;Carvalho Nuno
分类号 G06F17/30 主分类号 G06F17/30
代理机构 Staas & Halsey LLP 代理人 Staas & Halsey LLP
主权项 1. A querying method for a database of graph data encoded as triples, the triples each comprising values of three triple elements and being stored on a plurality of storage servers, the method comprising: at a centralized database controller, a dividing step comprising dividing a query into a plurality of result criteria, the result criteria being a triple pattern which some or all query results must match, each triple pattern is composed of three triple pattern elements each corresponding to a different one of the three triple elements; each triple pattern element being either one of: a single value triple pattern element specifying a single value of the corresponding triple element which triples must have to match the triple pattern; ora variable value triple pattern element specifying an ID of a variable, the ID being attributed to values of the corresponding triple elements of triples matching the triple pattern; at the centralized database controller, a sub-query forming step comprising, forming one or more sub-queries each comprising two or more triple patterns having the same single value triple pattern element or specifying the same ID of a variable as a variable value triple pattern element; at the centralized database controller, a sub-query issuing step comprising issuing each formed sub-query to each of the plurality of storage servers; at each storage server: receiving the formed sub-queries, scanning the triples stored on the storage server for triples satisfying the result criteria of each of the received sub-queries, and, for each received sub-query, transferring a copy of any triple satisfying the result criteria of the sub-query to the other storage servers and/or the centralized database controller as a sub-query result of the sub-query, wherein the scanning comprises: identifying each different triple pattern from among the received formed sub queries; prioritizing the identified different triple patterns with triple patterns having more variable value triple pattern elements being prioritized below triple patterns having fewer variable value triple pattern elements; in order of priority, for each of the triple patterns, scanning the triples stored on the storage server for triples matching the triple pattern to obtain an intermediate result set of triples; and obtaining sub-query results by combining the intermediate result set of triples for each of the triple patterns in sub-queries having more than one triple pattern, and by applying filtering conditions to the intermediate result set of triples for each of the triple patterns in sub-queries having filtering conditions; the method further comprising: at the centralized database controller, a query result preparing step comprising receiving the sub-query results from the plurality of storage servers and using the sub-query results to prepare query results as a response to the query.
地址 Kawasaki JP