Polyhedra is a family of relational database management systems (RDBMS) developed originally by Perihelion Technology Ltd and since 2001 offered by ENEA AB, a Swedish company. The product line is aimed primarily at embedded and real-time applications.
Overview
| Attribute | Detail |
|---|---|
| Developer | ENEA AB (originally Perihelion Technology Ltd / Polyhedra plc) |
| First release | 30 June 1993 |
| Latest release | 9.11 (2025) |
| Operating systems | Linux, Windows, Solaris, VxWorks, LynxOS, Integrity, OSE |
| Type | In-memory RDBMS; flash-based RDBMS |
| License | Proprietary; Polyhedra Lite released as freeware (2012) |
The original version, now called Polyhedra IMDB, is an in-memory DBMS that keeps the working copy of data in RAM and can be used in high-availability configurations. In 2006, Polyhedra Flash DBMS was introduced to allow databases to be stored in flash memory. All versions employ a client–server model, intended to protect data from misbehaving application software, and expose SQL, ODBC, and type-4 JDBC interfaces.
History
Development began in 1991 at Perihelion Technology Ltd, a subsidiary of Perihelion Software Ltd (PSL). The project was initially given the working title "Perihelion Application Toolkit" and was soon renamed Polyhedra, reusing a trademark from another PSL project. A management buyout occurred in 1994 and the company was renamed Polyhedra plc. Enea AB acquired Polyhedra plc in 2001. Version 1.0, described as the first commercial release of an in-memory RDBMS, appeared in 1993.
The product was ported to Windows and Linux in 1995, and to real-time operating systems (RTOS) beginning with pSOS in 1996. Subsequent releases added ODBC and JDBC support, Unicode, 64-bit support, schema migration, hot-standby capability for the flash-based variant (2008), partial database replication and subscription mechanisms, a Python DB-API module, REST and MQTT interfaces, and continued maintenance releases through the 2020s.
Features
Polyhedra was designed for small footprint and low latency, and to avoid polling. Its principal design characteristics include:
- keeping the working copy of data in memory (with a flash-based storage variant);
- a client–server architecture;
- an "active query" mechanism that notifies client applications when relevant database changes occur;
- a transactional model in which a transaction is a schema change, a query, or a request for a set of inserts, updates and/or deletes, with optimistic concurrency control for clashing updates;
- a table inheritance mechanism, which combined with database triggers via the proprietary CL (Control Language) allows object-oriented programming of the database;
- a "Historian" module for capturing, storing, archiving, and querying large volumes of time-series data.
Polyhedra IMDB achieves persistence through snapshots and journal logging; Polyhedra Flash DBMS uses shadow paging. The transactional model provides atomicity, consistency, and isolation; durability is enforced in Flash DBMS, while IMDB clients may choose the durability model per transaction. Hot-standby configurations are supported for availability.
The system is not a general-purpose DBMS: its restricted transactional model does not meet all needs, and its fault-tolerance model is based on hot standby rather than clustering. These constraints are presented as trade-offs suited to embedded deployment, where performance and cost are emphasized over handling continually varying usage workloads.
Licensing
Most Polyhedra products are sold under a proprietary license. In 2012, Enea released Polyhedra Lite, a reduced-functionality version of Polyhedra32 IMDB, as freeware for Windows, and for Linux on x86 and Raspberry Pi.
Adoption
Polyhedra is targeted primarily at embedded use by original equipment manufacturers. Reported customers include Ericsson, ABB, Emerson, Lockheed Martin, United Utilities, and Siemens AG.