A local transaction has a DO transaction cache. This cache is a HashMap.
The local transaction cache can be switched "on" or "off" in configuration file (attribute TransactionCaches, default value is "off"). So, transactions are also able to work without local DO cache.
When the transaction starts, all caching activities whose result forms DO modifications (create, delete, modify) must be done locally in the transaction cache. The reading activities are first done in the local transaction DO cache. If the DO is not found there, it is searched in the DataStruct cache, and if the DO is not find even there, it is retrieved from the database. After the transaction's commit (explained in the next chapter), the DataStruct cache is re-synchronized and query caches are updated (with the changes performed in the transaction).
After first transaction.write() operation, query caches can not be used in this transaction any more (they are not consistent with the transaction). The transaction.write() operation includes writes caused by parameter AutoWrite when set to true.