Oracle TimesTen In-Memory Database
        and Oracle In-Memory Database Cache


Frequently Asked Questions

Last Updated: June 2013


This document contains the commonly asked questions regarding the Oracle TimesTen In-Memory Database products

General


In-Memory Database


In-Memory Database Cache


Replication



General



1. What is Oracle TimesTen In-Memory Database?

Oracle TimesTen In-Memory Database is a memory-optimized relational database that empowers applications with the instant responsiveness and very high throughput required by today's real-time enterprises and industries in communications, financial services, web applications, travel logistics, gaming, and more. Deployed in the application tier as an embedded or standalone database, Oracle TimesTen In-Memory Database operates on databases that fit entirely in physical memory using standard SQL interfaces. The included replication technology enables real-time transactional replication between TimesTen databases for high availability and load sharing.



2. What is Oracle In-Memory Database Cache?

Oracle In-Memory Database Cache is an Oracle database option that provides real-time, read/write 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. 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. This Oracle Database option is ideal for caching performance-critical subsets of an Oracle database for improved response time in the application tier. To achieve 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 Oracle TimesTen databases.



3. Does Oracle TimesTen In-Memory Database have any special hardware and software requirements?

The Oracle TimesTen database was built with the assumption that all the data being managed resides in physical memory (RAM). As a result, the most important thing to consider regarding hardware is to have sufficient RAM available in the application tier. Aside from that, TimesTen has very few hardware considerations. As with any application, having an appropriate number of CPUs (running at appropriate clock speeds) is important for your application to run as fast as possible. Similarly, to take advantage of multiple CPUs, you need to either run multiple applications, or you should write your applications to use multiple threads. Additionally, the transaction logs and checkpoint files are persisted on disk, faster disks yield better overall performance.

Oracle In-Memory Database Cache resides in the application tier, it uses SQL*Net to communicate to the Oracle database. Oracle Database Instant Client is installed with In-Memory Database Cache, in order for it to connect to the Oracle database.



4. Is there any limitation for the size of a TimesTen database?

The database size is limited by the amount of physical RAM in the server. On 32-bit platforms, it’s constrained by 32-bit address space, so the database size is under 2GB in size or smaller depending on specific platform. For 64-bit platforms, there is no limit in size other than the amount of physical memory you have in the machine. We have customers that deploy with database size ranges from 1GB (gigabyte) to over 2 TBs (terabytes).



5. Is Oracle TimesTen In-Memory database part of the Oracle 12c database?

Oracle In-Memory Database Cache is a database option for the Oracle 12c and Oracle 11database. It includes the TimesTen In-Memory Database, and caching technologies which enable TimesTen to be deployed as an in-memory cache database with automatic data synchronization between TimesTen and the Oracle Database.

Oracle TimesTen In-Memory Database is a separately licensed product, it includes the TimesTen in-memory database and the replication components.



6. What platforms are the Oracle TimesTen technologies supported on?

The following platforms are supported:
  • Linux x86
  • Linux x86-64
  • Solaris SPARC (64-bit)
  • Solaris SPARC (32-bit client only)
  • Microsoft Windows x86
  • Microsoft Windows x64 (64-bit)
  • IBM AIX on POWER Systems (64-bit)
  • IBM AIX on POWER Systems (32-bit client only)
  • Solaris x86-64 (64-bit)

The Oracle In-Memory Database Cache option supports Oracle Database 12c, Oracle Database 11g Release 2, and Oracle Database 11g Release 1.



7. What are some of the applications that are best for TimesTen?

TimesTen is used by many telecom applications such as authentication, authorization, number portability, online charging and billing, mediation, and call centers. It is used by financial applications such as securities trading, stock exchanges, fraud detection, compliance, online banking, and bond pricing. Other applications include gaming, CRM systems, airline reservation systems, travel logistics, customer facing applications, and defense applications.

Oracle TimesTen is also core to some of Oracle applications such as the Exalytics In-Memory Machine for “Speed of Thought” OLAP analysis and Oracle Billing and Revenue Management application for real-time billing.



8. What is the difference between TimesTen In-Memory Database (or In-Memory Database Cache) and Coherence?

Both TimesTen and Coherence run in the application tier. Both are main-memory based. Coherence is a distributed in-memory object store. It is used to store and retrieve serialized objects using get/put APIs.

TimesTen is an in-memory relational database with persistence to disk and standard transaction semantics. It is accessed via SQL. When used as a cache to the Oracle Database, it synchronizes data automatically with the Oracle Database. Distributed caches present a single image to applications with location transparency and distributed concurrency control.



9. How is Exadata different from TimesTen In-Memory Database ?

Exadata, just like OracleRAC, is a highly scalable system that can be used to increase database throughput to unparalleled levels.

TimesTen’s unique value is in its ability to deliver very low response times in the application tier. For best performance, TimesTen is embedded with the application. TimesTen delivers responses to SQL requests in microseconds -- 1.78 microseconds (0.00178 ms) for a SQL SELECT statement and 7 microseconds (0.007 ms) for a SQL UPDATE statement. This is essential to real-time applications that require instantaneous response time for phone call routing, authentication and authorization, real-time billing, securities trading, fraud detection, online banking, etc.



10. I have more questions on TimesTen In-Memory database, is there a mailing list that I can contact?

There is a TimesTen In-Memory Database discussion forum on OTN. Please post your TimesTen product related questions there.


In-Memory Database



1. Can Oracle TimesTen In-Memory database be used as a standalone database?

Yes, the Oracle TimesTen In-Memory Database (TimesTen) is used by many customers today as a standalone database at the application tier. TimesTen provides full transactional support for SQL operations and the transaction logs are persisted to disk for recovery (the database is always in memory).



2. Can Oracle TimesTen In-Memory database be used as an in-memory cache to the Oracle database?

Yes, this is the Oracle database option ' Oracle In-Memory Database Cache". This database option includes the TimesTen In-Memory Database, and caching technologies to enable TimesTen to be deployed as  an in-memory cache database  with automatic data synchronization between TimesTen and the Oracle database.



3. What are the data access APIs to the TimesTen In-Memory database?

The TimesTen In-Memory database supports standard ODBC and JDBC interfaces, as well as OCI and ADO.NET for applications to connect to the database, using SQL-92 standards.



4. Are the interfaces provided by TimesTen different for 32-bit and 64-bit applications?

No, the application interfaces are the same for both 32-bit and 64-bit applications. In order to take advantage of the 64-bit mode, the application will need to be recompiled and linked to the TimesTen 64-bit library.



5. What languages can be used to develop Oracle TimesTen applications?

Applications can be developed using Java, .NET, C, C++, Pro*C and PL/SQL. For a list of sample programs, refer to the Oracle TimesTen In-Memory Database Quick Start Guide.



6. What does 'embedded mode' mean?

The Oracle TimesTen in-memory database was designed and optimized to run in the application tier. The database can be directly linked (embedded) with the application for best performance. With the TimesTen database embedded with the application, SQL access does not incur any network or IPC overhead.



7. Does the Oracle TimesTen In-Memory Database support indexes like the Oracle RDBMS?

Yes, the Oracle TimesTen In-Memory database supports indexes. Indexes improve the performance of queries to the database, just as they do in the Oracle database. TimesTen supports three types of indexes: Range indexes, which are used for lookups involving equality and inequality ranges; Hash indexes, which offer faster primary key and equality joaccess than Range indexes for exact match lookups and equijoins; and Bitmap indexes, which are good for columns that do not have many unique values and low level of concurrent DML transactions.



8. How are data structures designed and created in the TimesTen in-memory database?

TimesTen In-Memory Database supports the SQL standard. To create data structures, use SQL DDL statements e.g. CREATE TABLE, CREATE INDEX, CREATE SEQUENCE, CREATE VIEW, CREATE MATERIALIZED VIEW, CREATE PACKAGE, CREATE PROCEDURE, CREATE FUNCTION, CREATE SYNONYM, ALTER TABLE etc. The same database design techniques that are used for RDBMS can also be used for TimesTen. Designing and managing databases in TimesTen is simpler than in a disk-optimized RDBMS, as there is no need to size table extents or to defragment disks.



9. How does TimesTen recover from node/power failure, since it is an in-memory database?

While the entire database resides in memory, TimesTen also has transaction log files and checkpoint files that are persisted to disk. In the event of a system restart or failure, the in-memory database is recovered from the checkpoint and transaction log files. In addition, customers can configure TimesTen Replication to provide high availability.


In-Memory Database Cache



1. What are the Oracle database releases supported by Oracle In-Memory Database Cache?

In-Memory Database Cache supports Oracle Database 12c, Oracle Database 11g Release 2, and Oracle Database 11g Release 1.



2. What are the platforms supported by Oracle In-Memory Database Cache?

In-Memory Database Cache runs as a client application to Oracle database server. In-Memory Database Cache supports the same platforms as the TimesTen In-Memory Database. See What platforms are the Oracle TimesTen technologies supported on?.



3. Can I run Oracle In-Memory Database Cache on a different platform from the Oracle database server?

Yes, since In-Memory Database Cache runs as an Oracle client, it can be running on a different platform from that of the Oracle database server. Typically, In-Memory Database Cache resides on the application tier, whereas the Oracle Database sits on the database tier.



4. My Oracle database is terrabytes in size, how big should my TimesTen cache database be?

The amount of performance-critical data to cache in TimesTen varies depending on the nature of the application. Instead of caching the whole database, a subset of the database tables, columns and rows can be cached in TimesTen. Another option is to define a dynamic cache, where the data from the Oracle tables are loaded on demand.


Replication



1. What is TimesTen Replication?

TimesTen Replication is a component of the TimesTen in-memory database. The TimesTen Replication technology enables real-time data replication between TimesTen server nodes. It is used for creating highly available architectures, disaster recovery sites, and distributing data across multiple nodes. Replication supports active/standby or active/active configuration, using asynchronous or synchronous data transmission. Refer to the TimesTen In-Memory Database data sheet on the Overview page for more information.



2. How does TimesTen Replication ensure continuous availability in the event of system failures?

TimesTen Replication can be configured to replicate the entire TimesTen database to one or more TimesTen nodes. After a failover, where the standby node becomes the active node, the failed node can be recovered from the standby (now active) database.



3. Can I replicate selected tables in the database?

Yes, table-level replication and database level replication are both supported.



4. What network protocol is supported by TimesTen Replication?

TimesTen Replication uses persistent, streaming, TCP/IP sockets between the replicated nodes over a LAN or WAN.



5. Is TimesTen Replication bi-directional?

Yes, unidirectional and bi-directional replication are supported. For bi-directional replication, it's recommended that the workload be partitioned to avoid high-number of conflicts. In the event of conflicts where updates are made to the same database rows, TimesTen Replication supports timestamp-based conflict detection and resolution.