Ambra Cache Concepts

See http://www.topazproject.org/trac/wiki/AmbraCache?version=7 for 0.9.2 and prior versions

See r7599 for the changes from 0.9.2

The goal of Ambra cache management abstraction is to ensure that updates to the cache from within write txns are only committed to the backing cache (eg. EhCache?) only at transaction commit. Till then these changes are held in a transaction local {key, value} map.

Note that this goal is slightly different from the 0.9 ambra - there was an additional goal there to reduce queries to mulgara at whatever cost and therefore there was the popuate() concept that was different from a put(). Changes in 0.9.3 makes use of ambra's extensive use of read-only transactions and relaxes the need for a cache populate(). So it is possible when Mulgara allows multiple concurrent write transactions, multiple threads all doing the same mulgara query to populate the cahce. However that is not a concern for now and therefore eliminating populate() vastly simplifies the cache-management and avoids us having to serialize transaction commits.

Ambra Cache UML Diagrams

Ambra Cache UML

get() Sequence Diagram

Cache get() sequence diagram

put() Sequence Diagram

Cache put() sequence diagram

Attachments