Octo 1.0 Released
It is with great satisfaction that after two years in the making, we announce the release of Octo 1.0, the first production release of Octo.
Octo is a YottaDB plugin that provides read-only SQL access to tables that are mapped to YottaDB global variables. The mapping is very flexible, a table can be mapped across multiple global variables, and sub-trees of a global variable can be mapped to multiple tables. Octo is independent of application code, with the possible exception of low level routines for data conversion. For example, VistA stores dates in global variables as “Fileman dates” and Octo would need code from VistA to convert Fileman dates to normal dates. As the mapping from global variables to tables occurs ahead of any SQL processing, rather than during a query, SQL queries run as object code that directly accesses global variables. Octo has several optimizations for performance, with more to come.
SQL-92 queries are supported using interactive, command-line access, as well as from remote clients using the rocto server. Octo uses the PostgreSQL wire protocol for remote access. At this time, the Supported client is SQuirreL SQL, with more clients to come. Octo user documentation is at https://docs.yottadb.com/Octo/
Read-write access is also on the Octo roadmap.
Like all YottaDB software, Octo is developed as a 100% Free / Open Source (FOSS) project. This means that all development is done in the open at https://gitlab.com/YottaDB/DBMS/YDBOcto and when one of our developers submits a Merge Request, the review comments and responses are also visible to the world, and code commits are matched to change requests. So you can see our roadmap, track Octo development at https://gitlab.com/YottaDB/DBMS/YDBOcto/-/issues and vote Issues up or down based on their importance to you.
Code Merges into Octo use a Continuous Integration (CI) pipeline that runs a large number of user and system tests. This means that the Octo master branch at https://gitlab.com/YottaDB/DBMS/YDBOcto is always the latest production-ready Octo code. So, if you are tracking an enhancement or a fix, as soon as the code is merged and the Issue is Closed, you can git clone the Octo repository and use Octo. Like other YottaDB plugins Octo is released as source code with make scripting to compile and install it. In the future, we may add a Continuous Delivery (CD) step to make binary tarballs available.
Octo 1.0 requires a minimum YottaDB release of 1.30. With the ‐‐octo command line option (as well as the ‐‐posix option, as Octo requires the POSIX plugin) the ydbinstall command can install YottaDB and Octo in one step. In production environments you should run Octo on an SI replica from a production instance which can run either YottaDB or GT.M, and YottaDB r1.30 (on which Octo runs) can replicate from YottaDB as well as from GT.M. ^%ydbocto* global variables, where Octo stores compiled schema, cross references, etc. should be mapped to their own region.
Specifically for VistA, OctoVistA maps Fileman files, except “computed multiples” (which do not map well onto a relational schema), to generate a SQL DDL (Data Description Language) file that Octo can use to access VistA’s Fileman files as SQL tables.
For YottaDB support customers, Octo support is included in YottaDB support through December 31, 2020, after which you can add Octo support to your YottaDB support agreement for a 25% premium.
We are eager for you to try Octo 1.0. Please do try it and tell us what you think.
Published on September 18, 2020