The Objectdatabase++ log file has changed from the standard trace log file to a more managed logging system. This change has been required because Objectdatabase++ reuses the ObjectID of deleted objects to maintain an efficient hash index. Reusing the ObjectIDs in this manner creates a problem when two concurrent transaction interact as described in the following log trace:-
This log trace shows two concurrent transactions, the second transaction releases an object, the first then reclaims the object and commits, since the first transaction started first – the commit is flushed to disk, then afterwards the second transaction is unable to abort since it is unable to reclaim the ObjectID. This simple scenario requires a more complex transaction-logging regime in order to prevent such a situation from occurring.