also be linked directly into an application to avoid the RPC overhead of calling a separate server. Modes of Operation Single-Process, Multi-Thread Multi-Process, separate Transactional File Server Multi-Process, shared in-process Transactional File Server Dynamic DDL Support for on-the-fly alterations of the database and tables themselves Encryption AES 128, 192, 256 bit Additional SQL Data Types Date Time Datetime Binary Unicode Bit Data Providers and Drivers: Interoperability ADO.Net 4.0 Data Provider JDBC 4.2 Type 4 Driver ODBC 3.51 Driver RESTful API Different “tree” support AVL-Tree Indexing support B-Tree indexing support R-Tree indexing support Hash table indexing support Snapshots Snapshot isolation allows concurrent reads to the database when write transactions are occurring. RDM takes a frozen image of the current state of the system and that information can be read from without stopping writes. At any point in time, the user can issue a snapshot of specific tables through calling our rdm_dbStartSnapshot() API. Once done, the RDM system will create a static view of the tables specified where any changes to those tables will not be reflected in the snapshot. The user is then free to issue writes to that table outside of the snapshot and any reads within the snapshot view will not be waiting for those writes to complete or preventing those writes from finishing. Once the snapshot is no longer needed, a simple end transaction can be called to easily and quickly get rid of it. This feature provides the end user with the largest number of writes and reads possible simultaneously. Circular Tables support A record type, or table, can be defined as “circular.” With circular tables, when the table becomes full, RDM will still allow new record instances to be created. The new record instances will overwrite existing ones, starting with the oldest. RDM does not allow explicit deletion of record instances in a circular table. The definition of a circular table includes a size limit. This provides a useful way of allocating a fixed amount of storage space for storing the most recent instances of a particular record type. For example, this may be useful in storing event data that is being generated rapidly, where only the most recent data is relevant. Circular tables remove the risk that incoming data may fail to be stored due to lack of space, while avoiding the need for the application to delete obsolete data. Database limitations Maximum Databases Open