Enea has updated its real-time, high-availability embedded relational DBMS products. The Version 8.7 upgrade to Polyhedra IMDB (in-memory database) and Polyhedra FlashDBMS adds database locking and cascaded delete capabilities.
Polyhedra targets the high-performance, high-availability requirements of communications, military, and industrial automation systems and devices running Linux, Windows, or Enea’s OSE RTOS. The DBMS runs in “user space” and requires neither kernel modifications, special privileges, nor special installation, according to the company.
Polyhedra DBMS in a fault-tolerant configuration
Polyhedra is offered in two main versions: Polyhedra IMDB, for 32- and 64-bit systems; and Polyhedra Flash DBMS, for standalone, low power, resource-constrained devices. Both versions share the a common code-base, including SQL engine, client-server architecture and protocols, and hot-standby model for use in high-availability systems.
According to Enea, Polyhedra Flash DBMS can run in as little as 1MB of RAM for code and cache, although it can be configured with a larger cache for faster performance. Polyhedra IMDB, an entirely memory-resident database, requires more RAM. However, it provides “significantly faster and more predictable performance” than disk-based alternatives — “as much as an order-of-magnitude faster” — even when the disk-based alternative is cached into RAM.
What’s new in Polyhedra v8.7
The two new features implemented in version 8.7, as described by Enea, are…
- Database locking — allows an application to claim part of the database, so that others cannot make changes while the client with the lock is deciding on the changes it wants to make. In comparison with locking on database, table, or row, Polyhedra even makes it possible to lock individual fields of a record, which is critical for real-time systems. This allows, for example, one client to lock configuration fields for a record without stopping other applications updating the value field as new readings come in. Polyhedra also allows locks to be specified as pessimistic or optimistic and can automatically convert pessimistic locks to optimistic locks after a short period. The new locking mechanism is integrated into Polyhedra’s user-based security system, so the database administrator can control which tables, and which attributes of a table, someone can lock.
- Cascaded deletes — allows the database administrator to define cross-references between tables, by saying that a field is a ‘foreign key’ to another table in the database. It also enforces referential integrity, which means that if the value in a record for a foreign key attribute is non-null, then the record pointed at must exist. The person creating the tables containing the foreign keys can say what should happen when the referenced record is deleted: instead of the default behavior of failing the transaction to maintain integrity, the reference can be set to null, or the record containing the reference can be deleted — a “cascaded delete.”
Polyhedra v8.7 also adds an ODBC driver for use on the Raspberry Pi, in conjunction with unixODBC, making it easy to write PHP and Python programs that interact with Polyhedra. “You will, of course have to ensure that unixODBC is installed on your system (sudo apt-get install unixodbc), and, for Python programs, you will also need pyodbc (sudo apt-get python-pyodbc),” explains the company.
In addition to full Polyhedra versions for Linux, Windows, and OSE, the company offers three freeware versions of Polyhedra Lite: for Linux in general; for Linux on the Raspberry Pi; and for Windows. The downloads require free registration.
Further information about Polyhedra IMDB and Polyhedra FlashDBMS is available on Enea’s website, here.