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 enterprises in communications, financial services, web applications, travel logistics, gaming, and other industries. It can be deployed in the application tier as a cached database (TimesTen Application-Tier Database Cache), a standalone database (TimesTen Classic) or a distributed database (TimesTen Scaleout). Standard SQL interfaces, high availability and fault tolerance are standard features of the product.
TimesTen Application-Tier Database Cache (TimesTen Cache) is an Oracle Database option that provides real-time, read/write caching for Oracle Database. TimesTen 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, which enables TimesTen Cache to offer applications the full generality and functionality of a relational database, the transparent maintenance of cache consistency with Oracle Database, and the real-time performance of an in-memory database. TimesTen Cache is ideal for caching performance-critical subsets of an Oracle Database for improved response time in the application tier. To achieve high availability, TimesTen Cache can be deployed using an active-standby configuration, where cache tables are replicated in real time between the Oracle TimesTen In-Memory Databases.
Oracle TimesTen In-Memory 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.
TimesTen Cache resides in the application tier, it uses SQL*Net to communicate to the Oracle Database. Oracle Database Instant Client is installed within TimesTen Cache for it to connect to the Oracle Database.
Oracle TimesTen In-Memory Database is a separately licensed product; it includes the TimesTen In-Memory Database, the replication components, and the TimesTen Scaleout deployment.
TimesTen Application-Tier Database Cache is an Oracle Database Enterprise Edition option for Oracle Database. It includes TimesTen In-Memory Database and caching technologies, which enable TimesTen Cache to be deployed as an in-memory cache database with automatic data synchronization between TimesTen Cache and the Oracle Database.
The following platforms are supported:
The TimesTen Application-Tier Database Cache option supports Oracle Database releases 11.2.0.4, 12c, 19c and 21c, as well as these releases of Oracle Autonomous Database:
TimesTen databases are used for many applications for a diverse range of industries, including telecom applications for authentication, authorization, number portability, online charging and billing, mediation, and call centers, and 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 planning, customer facing applications, and defense applications.
Oracle TimesTen is also core to some Oracle applications, such as the Exalytics In-Memory Machine for “speed-of-thought” OLAP analysis and Oracle Billing and Revenue Management for real-time billing.
Both TimesTen databases 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 Oracle Database, it automatically synchronizes data with Oracle Database. Distributed caches present a single image to applications with location transparency and distributed concurrency control.
Exadata, which is based on Oracle RAC, is a highly scalable system that can be used to increase database throughput to unparalleled levels.
TimesTen’s unique value lies 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. This is essential for real-time applications that require instantaneous response time for phone call routing, authentication and authorization, real-time billing, securities trading, fraud detection, online banking, and many other use cases.
Yes, Oracle TimesTen In-Memory Database 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).
Yes, with TimesTen Application-Tier Database Cache. This database option includes 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 Oracle 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.
No, the application interfaces are the same for both 32-bit and 64-bit applications. To take advantage of the 64-bit mode, the application will need to be recompiled in 64-bit mode and linked to the TimesTen 64-bit libraries.
Applications can be developed using Java, .NET, C, C++, Pro*C, and PL/SQL as well as open source languages, such as Python and Node.js. For a list of sample programs, refer to the Oracle TimesTen In-Memory Database Samples on GitHub.
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. Even when running in embedded mode, TimesTen still provides full multi-process/multi-threaded access and concurrency control.
Yes, Oracle TimesTen In-Memory Database supports indexes. Indexes improve the performance of queries to the database, just as they do in Oracle Database. TimesTen supports two types of indexes: range indexes, which are used for lookups involving equality and inequality ranges, and hash indexes, which offer faster primary key and equality access than range indexes for exact match lookups and equijoins.
TimesTen In-Memory Database supports the SQL standard. To create data structures, use SQL DDL statements, for example, CREATE TABLE, CREATE INDEX, CREATE SEQUENCE, CREATE VIEW, CREATE MATERIALIZED VIEW, CREATE PACKAGE, CREATE PROCEDURE, CREATE FUNCTION, CREATE SYNONYM, ALTER TABLE, and so on. 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.
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.
TimesTen Cache supports:
TimesTen Cache runs as a client application to Oracle Database server. TimesTen Cache supports the same platforms as TimesTen In-Memory Database. See what platforms are supported by Oracle TimesTen technologies.
Yes, since TimesTen Cache runs as an Oracle client, it can be running on a different platform from that of the Oracle Database server. As implied by the name, TimesTen Application-Tier Database Cache, TimesTen Cache typically resides in the application tier, whereas Oracle Database sits in the database tier.
The amount of performance-critical data to cache in TimesTen Cache 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 Cache. Another option is to define a dynamic cache, where the data from the Oracle tables are loaded on demand.
TimesTen replication is a feature of TimesTen In-Memory Database and TimesTen Application-Tier Database Cache. 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. See the TimesTen In-Memory Database datasheet for more information.
You can configure TimesTen to replicate the entire TimesTen In-Memory 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.
Yes, table-level replication and database level replication are both supported.
TimesTen replication uses persistent, streaming, TCP/IP sockets between the replicated nodes over a LAN or WAN.
Yes, unidirectional and bidirectional replication is supported. For bidirectional replication, it's recommended that the workload be partitioned to avoid a 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.