Modern databases systems often require that transactions are completed within a specified time or else they must be aborted. In such real time systems, the database cannot afford the time to stop all currently executing transactions, restore the original database files and re-execute all committed transactions. ObjectDatabase++ has been designed for the requirments of such a modern real-time database.
ObjectDatabase++ allows for one transaction in one process to be independently repaired by a transaction in another process, without the need to interrupt any currently executing transaction. Our unique transaction log file allows repair of the database without any undue interference to the currently processing transaction. This compares with the usual transaction control system with a trace log file, where all currently executing transactions need to cease at the same time, creating an all or nothing effect while recovery from the backup files proceed.
You can add real-time database features to your C++, C# or VB.NET internet server application by following the top-level design as pictured in the diagram below. It shows how your database server that is made of several processes, or executing with several ATL COM web services, can recover from a number of very serious problems originating from any sub-system within your application.
ObjectDatabase++ has been written as one integrated system with its transaction control system an integral part of the entire design – not the usual onion layering design. Meaning that ObjectDatabase++ can flush through all changes at the time of the commit transaction call and doing so without been slower than other DBMS and in some cases, especially when dealing with a high add/edit/delete object count - faster. This prevents any corruption of table files and the automatic recovery of all information as of the time that processing ceased (assuming no disk failure).