Polyhedra 8.9

Polyhedra 8.9 was released on schedule in September 2014, with a number of functional enhancements to the SQL engine and the historian, as well as some security and performance enhancements and support for new platforms. Full details are in the release notes that accompany the release kits, but the main improvements are summarised below.

Enhanced Functionality

Polyhedra SQL improvements

Handling of the SQL SELECT statement has been enhanced to fully supports the DISTINCT clause, and also to enable toe use of GROUP BY and HAVING. We also now allow the left outer joins, and the explicit forms for specifying cross joins and inner joins.

Online backups of Historian data

Polyhedra's historian module allows time-series data to be captured and then queried. As the volume of such data is usually very large, the historian uses in-memory buffers which are written to files that are treated as large circular buffers. (There is also an archive mechanism that allows data from a historian file to be copied to a separate file before it is overwritten, and these archive files can be bought online as needed so their contents can be queried.) While Polyhedra is running, the historian files will be open for writing, and the most recently captured data will by in the RAM buffers; when the database is shut down, the in-memory buffers are written to the historian files and the files are closed. Polyhedra 8.9 introduces a way of asking the historian to produce a snapshot of all the historian files (plus a matching snapshot of the database) without the need to shut-down the database.

Improved security

We have enhanced the security of Polyhedra by allowing the administrators to require a that user authentication uses challenge-response protocol; this helps protect agains replay attacks and better protects user passwords in transit. Another change is the ability to change the names of user accounts (or, more accurately, the name that users have to give when logging on the the database, when user-based security has been enabled).

Platform upgrades

In addition to the previously-supported platforms, Polyhedra 8.9 runs on Enea Linux 4.0 (ARM and PowerPC), OSE 5.7.2, Windows 8.1 and Windows Server 2012 R2. We’ve also tested the Polyhedra 8.9 JBDC driver on Android and we have a nice demo with an Android app talking to a remote Polyhedra database using active queries.

Performance enhancement to ODBC and JDBC schema inspection functions

Both ODBC and JDBC provide some standard functions to allow applications to inspect the structure of a database, Of course, these do not know about Polyhedra extensions (such as table inheritance, shared and virtual attributes, and the ability to control the persistence of individual tables and attributes),  but they do allow third-party tools to glean some information about the database structure, and then query and update the database. The Polyhedra ODBC and JDBC libraries map these inspection functions onto queries on the special schema tables that are maintained by the Polyhedra server, and in Polyhedra 8.9 the libraries have been improved to better handle databases that contain large numbers of tables and indexes. Performance can improved still further by adding additional indexes on the schema tables:

create ordered index cat_index_1 on attributes(table_name)
create index cat_index_2 on indexes(table_name)
create ordered index cat_index_3 on indexattrs(index_name)

(The names of the indexes are not material.) The indexes are not automatically created as they have a slight space overhead (and marginally affect performance when altering the schema of the database), and also because the need for these indexes may change in future releases of Polyhedra. However, for the present we advise customers to add indexes such as these if they will be using third-party tools for schema inspection.  They will also improve the performance of the CL-based inspection tool described in developer.polyhedra.com/how-to-guides/inspecting-the-schema#TOC-A-CL-tool-to-inspect-a-Polyhedra-database!