Polyhedra In-Memory Database (IMDB) Systems
The Polyhedra IMDB product family is well known is as being the leading in-memory relational database solutions. In fact, it can be said that it established this market, as Polyhedra32 IMDB was first released in 1993 and has been continuously developed since then. Industry-standard APIs such as ODBC and JDBC simplify adoption, and high-availability features - such as transaction journalling, hot standby support, dynamic schema update capability and inter-version compatibility - have made Polyhedra the DBMS of choice in telecoms infrastructure systems and other applications needing ‘5 nines’ or better up-time.
Among the other features of the Polyhedra IMDB products that contribute to their success are:
- It uses SQL - a standard data manipulation and query language. As the query language is not database-dependent, it is easy to learn and use: simple things can be done simply. Where needed, though, SQL does allow the users to launch more complex queries that span many tables.
- Client-server architecture. Separating the data from the application(s) that use it protects the memory used by the database software from accidental modification, and therefore improves data integrity and system resilience.
- Wide range of supported platforms, with full cross-platform working. Polyhedra IMDB is likely to be available on your 32-bit or 64-bit platform of choice - or to be readily portable to that platform. Also, when using TCP/IP as the transport mechanism the client-server protocol is platform-independent, allowing remote interrogation and update of the database. Thus, different parts of the overall system can be run on appropriate platforms, and remote debugging is possible during application development.
- Active queries. Client applications can flag a query as ‘active’, and the database server will remember that the client has an ongoing interest in the results. If the database is changed such that the previous result set is now out of date, the server will automatically send a ‘delta’ to the client to tell it what has changed. This avoids the need for clients to poll the server, and simultaneously improves system responsiveness and scalability.
- Powerful trigger language allows ‘business logic’ to be embedded in the database. To each table, one can attach a number of separate ‘methods’, which run in-transaction when the appropriate event occurs: creation of a record, deletion of a record, or alteration of particular attributes. The methods can perform additional checks (and if necessary abort the transaction) and can do knock-on actions. This improves integrity, and reduces both the work of the client applications and the number of client-server iterations (and thus improves overall productivity of the development team and overall performance of the completed system).
- Fault-tolerant configurations are supported out of the box. Polyhedra IMDB products support master/hot-standby set-ups, for a simple, affordable solution for embedded systems needing high availability.
By keeping all data in-memory, Polyhedra IMDB offers exceptional performance for a transactional, ‘ACID
-compliant’, standards-based, relational database manager: on a Linux workstation, for example, one can have tens of thousands of transactions and queries per second, while even on a low-spec embedded board one can achieve many hundreds of transactions or queries per second.
stands for Atomic, Consistent, Isolated and Durable. If any part of a
transaction fails, it is all rolled back, and so the database can only move
from one consistent state to another. Transaction isolation means independence
from each other (and invisibility of internal states), while durability means
the data is preserved through system failure.