Oracle In-Memory Database Cache Overview

Oracle In-Memory Database Cache is an Oracle Database product option ideal for caching a performance-critical subset of an Oracle database in the application tier for improved response time. Applications perform read/write operations on the cache tables using SQL, PL/SQL, and Pro*C with automatic persistence, transactional consistency, and data synchronization with the Oracle database. Oracle In-Memory Database Cache is built using the Oracle TimesTen In-Memory Database product. (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.

IMDB Cache is built using Oracle TimesTen In-Memory Database (TimesTen) and is deployed in the application tier for multi-user and multi-threaded applications. Applications access the cache tables using standard SQL via JDBC, ODBC, Oracle Call Interface (OCI), Pro*C/C++, and Oracle PL/SQL programming interfaces. Cache tables are operated like regular relational tables inside the TimesTen database and are persistent and recoverable. Durability is achieved through a combination of transaction logging and database checkpointing to disk by TimesTen.

In-memory Database Cache Grid provides horizontal scalability in performance and capacity.  A Cache Grid consists of a collection of Oracle In-Memory Database Caches (IMDB Cache) that collectively manage an application’s cached data.  Cached data is distributed between the grid members and is available to the application with location transparency and transactional consistency across all grid members. Online addition and removal of cache grid members are performed without service interruption to the application.

Applications using IMDB Cache may choose to configure a combination of caching options:

  • Read-only caches where updates are performed in the Oracle Database and refreshed to the cache
  • Updatable caches where transactions are performed in the cache and then propagated to the Oracle Database
  • Cache data may be loaded on-demand or preloaded, and may be shared across the cache grid members or reside in specific cache node

Depending upon data access patterns and performance requirements, an application may choose to allocate specific data partitions to some grid members for locality optimizations, or it may choose to make all data available to all grid members for location transparency. The cache grid software manages cache coherency and transactional consistency across the grid members.

Data synchronization with the Oracle Database is performed automatically. Updates to the in-memory cache tables are asynchronously or synchronously written through to the Oracle Database, depending upon the desired trade off between performance and consistency. Synchronous write-through will ensure that, if the Oracle Database cannot accept the update(s), the transaction is rolled back from the cache database. Whereas asynchronous write-through leverages the speed of Oracle TimesTen by first committing the transactions locally, and then using asynchronous write-through to send the updates to the Oracle Database. Asynchronous write-through cache groups provide better application response time and transaction throughput.

For read-only cached groups, incremental updates in the Oracle Database are asynchronously refreshed to the in-memory cache tables in the application-tier, at user-specified intervals.

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.

Availability is an essential requirement for most real-time applications. High availability for in-memory cache tables is provided through real-time transactional replication


Related links

 
Free Download

Resources
· Online Documentation
· In-Memory Database Cache FAQ
· Discussion Forum

Related Technologies
· Oracle Database
· Oracle Database Performance and Scalability
· Oracle RAC
· Oracle SQL Developer
· Oracle Enterprise Manager

E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy