Oracle In-Memory Database Cache Overview
Oracle In-Memory Database Cache is a database option that provides real-time, updatable caching for the Oracle database. Oracle In-Memory Database Cache improves application transaction response time by caching a performance-critical subset of tables and table fragments
from an Oracle database to the application tier. (Product Data Sheet)
The majority of data in corporate databases is historical and infrequently accessed. But, buried within this data are pockets of information that should be instantly accessible when requested. Your best customers, open orders, recent transactions and product catalog are examples. In-Memory Database Cache enables such information to be automatically copied and managed in Oracle TimesTen in-memory databases for real-time access, with automatic data synchronization between the in-memory cache and the Oracle database.

In-Memory Database Cache uses the concept of a 'cache group', which describes a collection of cache tables that map to all or a subset of the tables in an Oracle database. A cache group can consist of all or a subset of the rows and columns in these tables. Multiple cache groups can be used to cache different sets of related tables in the Oracle database. In-memory cache tables are managed like regular relational database tables within the TimesTen in-memory database. Thus, Oracle In-Memory Database Cache offers applications the full generality and functionality of a relational database, the transparent maintenance of cache consistency with the Oracle database, and the real-time performance of an in-memory database. The in-memory cache tables are persistent and recoverable. Durability is achieved through a combination of transaction logging and database checkpointing to disk.
Most caching products are read-only, and thus limited to a narrow set of functions. Because In-Memory Database Cache supports full read/write SQL operations, it can be used for a wide range of applications. Updates to the cache tables in the in-memory database cache are asynchronously or synchronously write-through to the Oracle database, depend upon the desired trade off between performance and consistency.
For read-only cached groups, incremental updates in the Oracle database are asynchronously refreshed to the cache tables in the in-memory cache, at user specified intervals.
For applications where the cached data set cannot be pre-determined, the data can be loaded into the in-memory cache on-demand. For example, a Call Center application may choose to load the caller's current billing statement when routing the call to a qualified call agent, rather than pre-loading the entire set of billing information for all customers into the in-memory cache. A complementary feature for dynamic data loading is the automatic data aging feature to remove old data or least-recently-used (LRU) data from the cache. Data aging enables the applications to free up space for new data while keeping the 'hot' data available in memory.
In-Memory Database Cache is designed to continue running even after the Oracle database server or network connection has been lost.
Committed transactions to the cache tables are tracked and, once the connection is restored, they are propagated back to the Oracle database.
Similarly, committed transactions to the cached tables in Oracle database are tracked and refreshed to the TimesTen in-memory database, once connection to the Oracle Database is re-established.
Replication between in-memory caches is supported for high availability. Oracle In-Memory Database Cache can be deployed using an active-standby configuration, where cache tables are replicated in real-time between the in-memory caches.
Related links
|