The Open Query GRAPH engine (OQGRAPH) is a computation engine allowing hierarchies and more complex graph structures to be handled in a relational fashion. In a nutshell, tree structures and friend-of-a-friend style searches can now be done using standard SQL syntax, and results joined onto other tables.
No server modifications or SQL syntax extensions are necessary, the engine is implemented as a clean engine plugin for MariaDB 5.2 and above, this means that the OQGRAPH plugin (distributed with MariaDB) gets loaded at runtime. For MySQL 5.0 (which has no plugin capability) it had to be compiled in and OurDelta builds are still available.
See the OQGRAPH Documentation for more information, downloads, examples, etc.
The OQGRAPH engine is based on an original idea by Open Query founder Arjen Lentz, and has been developed in-house with Antony Curtis who is a veteran in MySQL server code and storage engines.
For the earlier proof of concept we had valuable support from MySQL and MariaDB core developers such as Sergei Golubchik (Sun/MySQL), Timour Katchaounov (Sun/MySQL), Igor Babaev (Monty Program).
Availability & Licensing
The v2 implementation is available as a gift to you, under the GPLv2+ license (please contact us if you have special licensing requirements).
I want it!
Sure! You can grab MariaDB 5.2 or higher at mariadb.com, and you can find the source in the oqgraph storage engine plugin directory of the mariadb tree on Launchpad. The oqgraph project on Launchpad tracks the historical implementation for MySQL 5.0, and was used for the newer persistent v3 (in MariaDB 10.0 and above).
Naturally, Open Query provides support for its OQGRAPH engine, we have the expertise on it. We prefer an ongoing subscription arrangement (billed quarterly) as this provides you with the best value, while being respectful of your budget.
As a more extreme example, we can provide source code or a build matching the MySQL version you’re running, even if it’s older. Very simply, Antony knows his own code well, he implemented significant parts of the engine infrastructure in the MySQL server core.
Work has started on a v3 prototype implementation that uses an existing storage engine (such as InnoDB) for persistence and scalability. For customers requiring these capabilities and possible other specialised functionality, we offer NRE options. We emphasise that the base implementation is in no way crippled.
You can contact us if you have any questions!