An additional problem, beyond that of impedance mismatch, can occur because the cache used by an application may not be tightly integrated with an RDBMS. This problem is referred to as cache synchronization. It occurs after the relational data has been transformed into an object format placed in an application cache.
When only one application is using the data, cache synchronization is not a problem. As soon as a second application accesses the database, however, the problem can occur.
An example of the impact of a second application is shown the figure below. In the example, a second application is accessing the same DBMS server that is being used by an object application that uses a cache with object-relational mapping. Application B can change the data being used by Application A. Cache A would need to be synchronized in some manner to obtain the changed data. How the cache is implemented and what types of locks are used will have a big impact on the problem. Also see concurrency control and locking.
The data in the cache must be synchronized with the data in the database managed by the DBMS server when a cache is used by an application that is separate from the underlying DBMS server.
Also see caching for object database management systems.
More on the general topic: Mapping Layer