IP Library Patent Application 14744546
Patent Application
App. No. 14/744,546

TECHNIQUES FOR RESOURCE DESCRIPTION FRAMEWORK MODELING WITHIN DISTRIBUTED DATABASE SYSTEMS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/744,546
Abstract

A Resource Description Framework engine is disclosed for performing transactional RDF-based operations against a distributed database. The RDFE manages a local memory cache that stores active portions of the database, and can synchronize those active portions using a transactionally-coherent distributed cache across all database nodes. During RDF reads, the RDFE can identify a triple-store table affected by a given RDF transaction, and can traverse the index objects for that table to locate triple values that satisfy a given RDF query, without intervening SQL operations. The RDFE can also perform SQL transactions or low-level write operations to update triples in triple-store tables. Thus the RDFE can update corresponding index objects contemporaneous with the insertion of RDF triples, with those updates replicated to all database nodes. A user application can instantiate the RDFE during runtime, thus allowing in-process access to the distributed database through which the user application can execute RDF transactions.

Claims (38)

1 . A system comprising:

a network interface circuit configured to communicatively couple to a communication network, the communication network comprising a plurality of database nodes forming a distributed database;

a memory for storing a plurality of database objects; and

a resource description framework (RDF) engine configured with an RDF mode, the RDF mode configured to:

parse a first RDF query, the first RDF query including at least one search pattern;

determine a directed graph to perform the first RDF query against, the directed graph being persisted in a relational database table;

identify a plurality of table index objects associated with the relational database table, each table index object including a key-value pair, wherein the plurality of table index objects forms a logical index structure; and

traverse the logical index structure to identify a value from a key-value pair that satisfies the at least one search pattern, and construct a result set including the identified value,

wherein traversing the logical index structure includes directly accessing table index objects in the memory without an intervening structured query language (SQL) operation.

2 . The system of claim 1 , wherein the first RDF query is received in response to a user application executing an application programming interface (API) function, and wherein the RDF mode is further configured to provide the constructed result set to the user application.

3 . The system of claim 1 , wherein the first RDF query is received from a hypertext transfer protocol (HTTP) endpoint configured to service Simple Protocol and RDF query Language (SPARQL) requests from a remote client, and wherein the RDF mode is further configured to provide the constructed result set to the remote client.

4 . The system of claim 1 , wherein the RDF mode is further configured to receive a replication message from a database node of the distributed database system, and wherein the replication message is configured to cause synchronization of database transactions such that a same database or portions thereof are stored in a memory within each of the plurality of database nodes.

5 . The system of claim 4 , wherein the replication message causes manipulation of a database object within the memory such that a new database object version is persisted in the memory, the new database object version representing a new triple inserted into the relational database table, and wherein the new triple is invisible to transactions until the RDF engine receives a commit message indicating a corresponding transaction was finalized.

6 . The system of claim 1 , wherein the logical index structure comprises at least one of a Balanced-tree structure, a Hash-based index and a doubly-linked list.

7 . The system of claim 1 , wherein the RDF mode implements Atomicity, Consistency, Isolation, and Durability (ACID) properties.

8 . A computer-implemented method for executing RDF transactions against triple-store tables in a relational database, the method comprising:

parsing, by a processor, a first RDF query, the first RDF query including at least one search pattern;

determining, by the processor, a directed graph to perform the first RDF query against, the directed graph being persisted in a relational database table;

identifying, by the processor, a plurality of table index objects associated with the relational database table, each table index object including a key-value pair, wherein the plurality of table index objects forms a logical index structure; and

traversing, by the processor, the logical index structure to identify a value from a key-value pair that satisfies the at least one search pattern and constructing a result set with the identified value;

wherein traversing the logical index structure includes directly accessing table index objects in a memory without an intervening structured query language (SQL) operation.

9 . The method of claim 8 , wherein the first RDF query is received in response to a user application executing an application programming interface (API) function, and the method further comprising providing the constructed result set to the user application.

10 . The method of claim 8 , wherein identifying a plurality of table index objects further includes retrieving at least one table index object from a durable distributed cache, the durable distributed cache being implemented by a plurality of database nodes forming a distributed database.

11 . The method of claim 10 , the method further comprising receiving a replication message from a database node of a distributed database system, wherein the replication message is configured to cause synchronization of database transactions such that a same database or portions thereof are stored in a memory within each of the plurality of database nodes, and wherein the memory of each of the plurality of distributed database nodes collectively forms a portion of the durable distributed cache.

12 . The method of claim 10 , wherein the replication message causes manipulation of a database object within the memory such that a new database object version is persisted in the memory, the new database object version representing a new triple inserted into the relational database table, and wherein the new triple is invisible to database transactions until a commit message is received indicating a corresponding transaction was finalized.

13 . The method of claim 8 , wherein the logical index structure comprises a Balanced-tree structure, a Hash-based index and a doubly-linked list.

14 . The method of claim 8 , wherein the directed graph comprises a plurality of triple statements, each triple statement including a subject, a predicate and an object, and wherein each triple is stored in a relational database table based on its respective predicate.

15 . A non-transitory computer-readable medium having a plurality of instructions encoded thereon that when executed by at least one processor cause a process to be carried out, the process configured to:

parse a first RDF query, the first RDF query including at least one search pattern;

determine a directed graph to perform the first RDF query against, the directed graph being persisted in a relational database table;

identify a plurality of table index objects associated with the relational database table, each table index object including a key-value pair, wherein the plurality of table index objects forms a logical index structure; and

traverse the logical index structure to identify a value from a key-value pair that satisfies the at least one search pattern and construct a result set with the identified value;

wherein traversing the logical index structure includes directly accessing the index objects in a memory without an intervening structured query language (SQL) operation.

16 . The computer-readable medium of claim 15 , wherein the first RDF query is received in response to a user application executing an application programming interface (API) function, and wherein the process is further configured to provide the constructed result set to the user application.

17 . The computer-readable medium of claim 15 , wherein the first RDF query is received from a hypertext transfer protocol (HTTP) endpoint configured to service Simple Protocol and RDF query Language (SPARQL) requests from a remote client, and wherein the process is configured to provide the constructed result set to the remote client.

18 . The computer-readable medium of claim 15 , wherein the plurality of table index objects are identified based on retrieving at least one table index object from a durable distributed cache, the durable distributed cache being implemented by a plurality of database nodes forming a distributed database.

19 . The computer-readable medium of claim 18 , wherein the process is further configured to receive a replication message from a database node of a distributed database system, and wherein the replication message is configured to cause synchronization of database transactions such that a same database or portions thereof are stored in a memory within each of the plurality of database nodes.

20 . The computer-readable medium of claim 19 , wherein the replication message manipulates a database object within the memory such that a new database object version is persisted in the memory, and wherein the new database object version is invisible to transactions until receiving a commit message indicating a corresponding transaction was finalized.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: NUODB, INC.
To: DASSAULT SYSTEMES SE
Reel/Frame 068299/0883 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2015
From: MASSARI, ALBERTO; MCNEILL, KEITH DAVID; LEVIN, OLEG; ABREVAYA, ADAM; PROCTOR, SETH THEODORE
To: NUODB, INC.
Reel/Frame 035953/0862 →