Mimer SQL includes a very effective Transaction Management system. Basically, it builds on a method called Optimistic Concurrency Control (OCC).
Mimer SQL's pioneering work makes it the first relation database management system (RDBMS) to use the OCC method for transaction management. However, several Object Orientated Databases, which were more recently developed, have incorporated OCC within their designs to gain the performance advantages inherent in this technological approach.
Through the Group Commit concept, which is applied in Mimer SQL, the number of I/Os needed to secure committed transactions to the disk is reduced to a minimum. The actual updates to the database are performed in the background, allowing the originating application to continue.
The ROLLBACK statement is supported but, because nothing is written to the actual database during the transaction build-up phase, this only involves a re-initialization of structures used by the transaction control system.
Another significant transaction feature in Mimer SQL is the concept of Read-Only transactions, which can be used for transactions that only perform read operations to the database. When performing a Read-Only transaction, the application will always see a consistent view of the database. Since consistency is guaranteed during a Read-Only transaction, no transaction check is needed and internal structures used to perform transaction checks (i.e. the Read Set) are not needed, and for this reason no Read Set is established for a Read-Only transaction. This has significantly positive effects on performance for these transactions. This means that a Read-Only transaction always succeeds, unaffected of changes performed by other transactions. Also, a Read-Only transaction never disturbs any other transactions going on in the system. For example, a complicated long-running query can execute in parallel with OLTP (on-line transaction processing) transactions.
Though optimistic methods were originally developed for transaction management, the concept is equally applicable for the more general problems of sharing resources and data. The methods have been incorporated into several recently developed operating systems, and many of the recent hardware architectures provide instructions to support and simplify the implementation of these methods.
Optimistic Concurrency Control does not involve any locking of rows as such, and therefore cannot involve any deadlocks. Instead, it works by dividing the transaction into phases.
Most other DBMSs offer pessimistic concurrency control or locking. This type of concurrency control protects a user's reads and updates by acquiring locks on rows (or possibly database pages, depending on the implementation), this leads to applications becoming 'contention bound' with performance limited by other transactions. These locks may force other users to wait if they try to access the locked items. The user that 'owns' the locks will usually complete their work, committing the transaction and thereby freeing the locks so that the waiting users can compete to attempt to acquire the locks.
Optimistic Concurrency Control offers a number of distinct advantages including:
For a programmer, it is good to know that it is not possible to create a deadlock situation.