Database controller, method, and program for handling range queries
AssigneeFujitsu Limited
InventorsBo Hu, Nuno Carvalho
Life of this patent
Estimating the term…
Loading patent…
AssigneeFujitsu Limited
InventorsBo Hu, Nuno Carvalho
Estimating the term…
A database controller for a database of data items distributed across a plurality of storage units. The database controller configured to store an ordered list comprising, for each of the data items individually, the identifying information of the storage unit upon which the data item is stored. The database controller configured to maintain a frequency record, recording the values of prefix portions of the data items and the number of data items having each prefix portion. Wherein, the ordered list and the frequency record are ordered by applying the same ordering metric to the prefix portions. The database controller being configured to receive a range query specifying a search prefix portion, to use the frequency record to calculate where to find in the ordered list the identifying information of storage units storing the data items having the search prefix, and using that identifying information to retrieve query results.
A database controller for a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of two or more data elements, the set of data items having a prescribed order of the two or more data elements of which the first one or two data elements are assigned as a prefix portion, the database controller comprising computing hardware including a processor and a memory coupled to the processor and storing processing instructions which when executed by the processor cause the processor to execute a process, the process comprising:
A method for obtaining range query results from a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of three data elements, the set of data items having a prescribed order of the three data elements of which the first one or two data elements are assigned as a prefix portion, the plurality of storage units being connected to a database controller storing:
A non-transitory storage medium storing a computer program which, when executed by one or more computing apparatuses, causes the one or more computing apparatuses to perform a method for obtaining range query results from a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of three data elements, the set of data items having a prescribed order of the three data elements of which the first one or two data elements are assigned as a prefix portion, the plurality of storage units being connected to a database controller storing:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Query processing: query execution
Information retrieval; Database structures therefor; File system structures therefor: of structured data, e.g. relational data
Computing and data processing
About 8 years 8 months of term left · ends 17 Jun 2035 (estimated)
This application claims the benefit of European Application No. 13169786.4, filed May 29, 2013, the disclosure of which is incorporated herein by reference.
The present invention lies in the field of data storage and data mining. In particular, the invention relates to the handling of range queries submitted to a database of information encoded as a set of data items.
Distributed data stores, for example, graph databases, have been intensively investigated in the past few years. Leading technical solutions include a variety of data partition approaches and/or the data caching solutions that are tuned against particular representations. Both solutions are not ideal. Data partitioning and/or clustering is intrinsically complex and can be NP-complete in general. When using graph representation for an ontology, it is difficult to maintain data balance and minimum data replication across multiple storage units while at the same time ensuring that no knowledge is lost during the distribution process. Therefore, inter sub-graph reference happens frequently leading to a majority of the graph partition and clustering approaches failing to significantly reduce inter data-node communication. Similarly, the widely used caching algorithms are not designed for graph representation. Such problems are not restricted to graph data, and can also arise in the case of other types of distributed data storage.
Features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:
FIG. 1 illustrates a data storage system having a database controller embodying the present invention.
FIG. 2 illustrates a prefix tree in an invention embodiment;
The data storage system comprises a database controller 10 and a plurality of storage units 30.
The plurality of storage units 30 are in data communication with one another and with the database controller via a wired or wireless network, illustrated as a bus on FIG. 1 for representative purposes. Data connections within the database controller 10 are not illustrated since it is assumed that the individual modules are configured to exchange data as and when they require in performing their functions. The application 20 may be considered as exterior or interior to the data storage system, and is significant as being the source of a range query. It may be that the application 20 is a functional layer operating within the data storage system, for example, a SPARQL query interface, which receives queries from external applications and processes them into a form suitable for forwarding to the query receiving module 12.
The database controller 10 is a functional entity which is connectable to the storage units storing the encoded database information. In the description of the particular embodiments the database of information is graph data and the data items are triples, which may specifically be RDF triples. The database controller 10 is configured to handle range queries. It may be that other entities are responsible for other database control functions, for example, insertion of new data and data updates, and handling access for applications, so that the database controller 10 embodying the present invention does not necessarily have exclusive control over the database, merely control over some functionality. The database controller 10 may be realized as a dedicated hardware device or by software running on one or more computers, which one or more computers may include servers having storage units storing the triples. The database controller may be a functional module running on a master server or some other centralized device having responsibility for controlling the storage units 30.