Polyhedra Flash DBMS is a relatively new member of the Polyhedra family of products
, and is specifically targeted at stand-alone, low-power devices such as set-top boxes, picocells and portable battery-powered devices. By keeping the master copy of data in a flash file rather than in memory, the RAM usage becomes effectively independent of the database size. Polyhedra Flash DBMS shares the same code base as the Polyhedra 32 IMDB and Polyhedra 64 IMDB
product lines, and so shares almost all the benefits of the standard product, including:
- Standards-based: SQL, ODBC and JDBC;
- Fully transactional and ACID-compliant;
- Client-server architecture, so an application failure does not corrupt the database;
- Multi-platform, with cross-platform working;
- Active query support to avoid the need for polling;
- Trigger language for embedding business logic into the database;
- Support for high-availability, where needed; and,
- Database files are not tied to any particular location or machine, and so can be copied for backup purposes, for offline analysis or to act as the seed for another machine.
In portable and low-power applications, RAM usage has to be kept low - not just because large volumes means the bill of materials must be kept low, but also because more RAM means more power being used (and thus runs down the battery faster, or can lead to heat build-up and higher energy bills). So, while standard Polyhedra IMDB has a code footprint of 1.5-2MB (depending on the platform, and on the choice of modules linked in to the DBMS) and keeps the master copy of all data in RAM, Polyhedra Flash DBMS is configurable to less than a megabyte for code, stack, heap etc - and this includes space for a page cache to speed up access to the database. Part of this footprint reduction comes from omission of features such as the historian that are not relevant in some of the target markets, but much comes from enhanced modularisation - allowing, for example, the code for handling fault-tolerant configurations to be omitted if not needed. Other improvements introduced for Polyhedra Flash DBMS included:
- Configurable per-table space pre-allocation factors and table size limits;
- Overall space allocation limits (both on RAM and flash file size); and,
- Better recovery from space full conditions.
The enhancements to RAM allocation (and exhaustion recovery) have now been incorporated into the standard code-base, and so affect the whole Polyhedra family of products.
Polyhedra Flash DBMS is designed with the characteristics of NAND flash in mind, but also works with disk-based file stores. (Traditional disk-based database systems tend not to work well with flash, as they assume writing is only marginally slower than reading.) For systems that do not provide a wear-levelling, flash-based filing system accessible via POSIX calls, Polyhedra Flash DBMS provides a ‘file API’ that allows customers to use their own flash (or disk) interface routines. Depending on the size of the RAM caches, the performance of Polyhedra Flash DBMS is comparable with standard Polyhedra IMDB for reading, but update performance depends on the speed of the flash device in use.