Database controller, method, and system for storing encoded triples - CARVALHO, NUNO (2013)
Embodiments of the present invention provide a database controller for a database for storing graph data encoded as triples, each triple comprising a subject, a predicate, and an object, and each stored within a data item among a set of data items ordered according to the triple stored within, with each data item being stored on a storage node from among a plurality of storage nodes distributed in a network; the database controller comprising: a storage request receiver configured to receive a request to store a triple in the database; a data item generation module configured to generate two or more data items each having a different version of the triple from among the following: -a first version in which the subject precedes the predicate and the object in the data item; -a second version in which the predicate precedes the subject and the object in the data item; and -a third version in which the object precedes the subject and the predicate in the data item. The database controller further comprises: an instruction distributer configured to, for each of the two or more data items, select a storage node from among the plurality of storage nodes to instruct to store the data item, the selection being made in dependence upon the position of the data item within the ordered set, the instruction distributer including a redundancy module configured to ensure that at least two different storage nodes from among the plurality of storage nodes are instructed to store a data item including a version of the triple.