
{"id":7296,"date":"2021-12-14T08:29:58","date_gmt":"2021-12-14T08:29:58","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/introduction-to-oracle-timesten\/"},"modified":"2026-11-03T19:28:25","modified_gmt":"2026-11-03T19:28:25","slug":"introduction-to-oracle-timesten","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/introduction-to-oracle-timesten\/","title":{"rendered":"Introduction to Oracle TimesTen"},"content":{"rendered":"<p>\nTimesTen is an Oracle product with the potential to drastically enhance the performance of the Oracle database.&nbsp;Besides being memory-optimized, Times Ten also provides high throughput, ensures durability and provides the ability to scale. All the while providing minimal response times, especially for applications with a critical reliance on performance. Unlike conventional databases, Times Ten provides high efficiency, residing entirely in the RAM.<\/p>\n<p><strong>TimesTen History<\/strong><\/p>\n<ul>\n<li>Invented at HP Labs in 1994<\/li>\n<li>Embedded into HP\u2019s Open Call solution<\/li>\n<li>Spun off in 1996 as VC funded startup<\/li>\n<li>Thousands of production customers<\/li>\n<li>Acquired by Oracle Corporation in 2005<\/li>\n<li>3 major releases since 2005: 6.0, 7.0, 11gR2,18c Release 1<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Overview of Oracle TimesTen&nbsp;<\/strong><\/p>\n<p>Oracle TimesTen In-Memory Database is an in-memory, relational database management system with persistence and high availability. Originally designed and implemented at Hewlett-Packard labs in Palo Alto, California, TimesTen spun out into a separate startup in 1996 and was acquired by Oracle Corporation in 2005.<\/p>\n<p>TimesTen databases have high persistence and availability. It provides for very low latency and high throughput, being an in-memory database. Other features include standard relational database APIs like JDBC and ODBC. TimesTen can not only be used as a standalone in-memory database but also provides the utility of being used as a cache in other relational databases, including the Oracle Database itself. It is often used in extremely high-volume OLTP applications including financial trading and telecom billing.<\/p>\n<p><strong>How TimesTen Stores Data on Disk<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26387-body-Picture1_12.png\" alt=\"times ten pic 1\" \/><\/p>\n<p class=\"text-align-center\"><a href=\"http:\/\/luna-ext.di.fc.ul.pt\/oracle11g\/timesten.112\/e14261\/overview.htm\">Image Source<\/a>&nbsp;<\/p>\n<p>Each TimesTen data store has exactly two checkpoint files. A checkpoint is called every 10 minutes by default; this writes the dirty memory pages to the first checkpoint file, and then the next checkpoint uses the other checkpoint file. Write transactions are placed in an in-memory buffer first, then flushed to the log files.<\/p>\n<p><strong>Two Types of Transactional Logging:<\/strong><\/p>\n<p><strong>&nbsp;Buffered Logging:&nbsp;<\/strong><\/p>\n<p>(<em>SPEED: FAST, DURABILITY: GOOD<\/em>) Transactions are saved to an in-memory log buffer first. &nbsp;When the buffer fills, it is flushed to disk in the background. &nbsp;The process is very fast (5000 TPS or more). &nbsp;There is a small chance that transactions could be lost if a crash occurs before the buffer is flushed. The customer can configure the size of the log buffer.<\/p>\n<p><strong>Durable Commit<\/strong><\/p>\n<p><strong>(<\/strong><em>SPEED: SLOW, DURABILITY: EXCELLENT<\/em><strong>) <\/strong>Every transaction is flushed to disk immediately. The speed of this depends on the speed of the disk device. Since every transaction is saved to disk, this is very durable.<\/p>\n<p>The customer may switch from BUFFERED LOGGING to DURABLE COMMIT at any time by calling a SQL function called <em>ttDurableCommit().<\/em>&nbsp; The customer can flexibly control the durability vs. performance at run-time, something that is not possible with a conventional RDBMS.<\/p>\n<p><strong>Significant Response Time Improvement: In-Memory Database Cache + Oracle Database<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26387-body-Picture2_15.png\" alt=\"times ten pic 2\" \/><\/p>\n<p class=\"text-align-center\">&nbsp;<a href=\"https:\/\/www.oracle.com\/technetwork\/database\/windows\/ds-imdb-cache-1-129794.pdf\">Image Source<\/a><\/p>\n<p>The above graph shows the average transaction response time measured for each of the 7 transaction types.&nbsp;<\/p>\n<p>The red bars are the response time obtained when the data is cached in the TimesTen IMDB. It\u2019s a huge improvement for the application database operation. Remember a good part of the response time on the Oracle database is due to the client-server connection and the network roundtrip, neither exists when the application links directly to the TimesTen database in memory. &nbsp;Applications can also connect to TimesTen via TCP\/IP client\/server.<\/p>\n<p><strong>Creating a TimesTen Database<\/strong><\/p>\n<p><strong>Define a DSN<\/strong><\/p>\n<p><strong>\u2022&nbsp;&nbsp; <\/strong>&nbsp;DataStore attribute: Specifies the directory name of the database\u2019s checkpoint files&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<\/p>\n<p>&nbsp;&nbsp; &nbsp;ex:<strong> <em>DataStore=\/data\/TTDEMO\/TTDEMO-DSN1\/TTDEMO-DSN1<\/em><\/strong><\/p>\n<p><strong><em>\u2022&nbsp;&nbsp; <\/em><\/strong>&nbsp;LogDir attribute: Specifies the directory name for transaction log files. The transaction log contains log records for each database update, commit, and rollback.<\/p>\n<p>\u2022&nbsp;&nbsp; &nbsp;DatabaseCharacterSet attribute: Character set in which data is stored Logically divided into two separate memory regions<\/p>\n<p><strong>Database Memory Regions<\/strong><\/p>\n<ul>\n<li>Permanent region&nbsp;<\/li>\n<li>PermSize DSN attribute configures its allocated size.<\/li>\n<li>Region stores persistent database elements (ex: tables, indexes)<\/li>\n<li>The region is written to disk during a checkpoint operation.<\/li>\n<li>Temporary region&nbsp;<\/li>\n<li>TempSize DSN attribute configures its allocated size<\/li>\n<li>Region stores transient data and information generated when executing statements (temp tables, stored result sets&#8230;)<\/li>\n<li>The database will be automatically created when the instance administrator connects to the database<\/li>\n<\/ul>\n<p><em>&nbsp; &nbsp;$ttisql &lt;DSN name&gt;<\/em><\/p>\n<p>\u2022 Ttisql utility connects to server DSN directly and ttIsqlCS utility connects to TimesTen client DSNs.&nbsp;<\/p>\n<p><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ttisql connStr &#8220;DSN=TTDEMO-DSN1;UID=timesten;pwd=timesten&#8221;<\/em><\/p>\n<p>\u2022&nbsp;&nbsp; &nbsp;RAM Policy: Determines when the database is loaded into and unloaded from memory.<\/p>\n<ul>\n<li>inUse: The database is in memory if it is in use (default policy).&nbsp;<\/li>\n<li>always: The database is always kept resident in memory.&nbsp;<\/li>\n<li>manual: The database is manually loaded into and unloaded from memory.<\/li>\n<\/ul>\n<p>GitOps can enable an effective foundation for building Cloud Native applications.The key principles of GitOps highlight the following benefits for organizations:<\/p>\n<p><strong>In-Memory Database Cache<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26387-body-Picture3_10.png\" alt=\"times ten pic 3\" \/><\/p>\n<p class=\"text-align-center\">&nbsp;<a href=\"https:\/\/www.oracle.com\/database\/technologies\/timesten-cache.html\">Image Source<\/a><\/p>\n<p><strong>&nbsp;\u2022 Cache Oracle database tables in the application-tier<\/strong><br \/>\n1.&nbsp;&nbsp; &nbsp;Cache individual tables and related tables<br \/>\n2.&nbsp;&nbsp; &nbsp;Cache all or subset of rows and columns<\/p>\n<p><strong>Read-only and updatable cache database<\/strong><br \/>\n1.&nbsp;&nbsp; &nbsp;Access cached tables like regular SQL database tables<br \/>\n2.&nbsp;&nbsp; &nbsp;Joins\/search, insert\/update\/delete<\/p>\n<p><strong>&nbsp;Automatic data synchronization<\/strong><br \/>\n1.&nbsp;&nbsp; &nbsp;TimesTen to Oracle<br \/>\n2.&nbsp;&nbsp; &nbsp;Oracle to TimesTen<\/p>\n<p><strong>Oracle IMDB Cache<\/strong><\/p>\n<p>\u2022&nbsp; &nbsp; <em>What is a Cache group?<\/em><br \/>\n&nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp; A set of cached tables created in TimesTen database that correspond to tables in Oracle Database<\/p>\n<p>\u2022&nbsp; &nbsp; <em>Read-Only Cache Group<\/em><\/p>\n<p>Read Operations are performed in TimesTen<\/p>\n<p>Write Operations are passed through to Oracle and automatically refreshed to TimesTen<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26387-body-Picture4_9.png\" alt=\"times ten pic 4\" \/><\/p>\n<p class=\"text-align-center\"><a href=\"\/\/docs.oracle.com\/cd\/E18283_01\/timesten.112\/e14261\/cache.htm\">Image Source<\/a><\/p>\n<p>Cache Connect in Oracle enables the user to cache a subset of their Oracle database into TimesTen to provide better response time and throughput to the frequently accessed data.&nbsp;You can cache-select full tables, a subset of the rows, or a subset of the columns.&nbsp;The cache can be read-only or updatable. If the data is updated inside the TimesTen database, the updates are propagated to the Oracle database via synchronous write-through or asynchronous write-through.<br \/>\nYou can have multiple cache instances caching from the same Oracle DB; each cache instance can have its own different set of cached content.<\/p>\n<p>IMDB Cache Administration &amp; Best Practices<\/p>\n<ul>\n<li>One time Cache Setup in both Oracle and TimesTen databases (per implementation doc)<\/li>\n<li>Set Cache Agent Restart Policy: Manual, always, no restart<\/li>\n<li>Specify AUTOREFRESH interval<\/li>\n<li>&#8211; Creates INSERT, UPDATE, and DELETE triggers on the Oracle table(s) in the cache group<\/li>\n<li>&#8211; The trigger inserts a small row into a logging table that TimesTen keeps in Oracle<\/li>\n<li>&#8211; The TimesTen agent queries this table and refreshes the data in the interval you specify<\/li>\n<li>Data Definition changes in Oracle will require LOAD, UNLOAD, FLUSH, REFRESH CACHE GROUPS<\/li>\n<\/ul>\n<p><strong>Conclusion<\/strong><\/p>\n<p>TimesTen is an In-Memory Relational Database offering very low latency and extremely high throughput for SQL operations while providing standard relational database functionality through standard APIs. It can be deployed as a standalone database or as a high-performance relational cache for the Oracle Database.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Oracle Times Ten <\/p>\n","protected":false},"author":2,"featured_media":7298,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26387","content_type":"blog","created_by":"10130","authored_on":"2023-12-18T08:29:58+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Suryakanta Sahu, Oracle Applications Database Administrator, Rackspace Technology","seo_description":"Implement Oracle Access Manager (OAM) with Oracle E-Business Suites (EBS) to achieve seamless single sign-on (SSO) functionality and enhance user experience.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26387-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2021-12-14T08:29:58","rxt_solutions":"Databases","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Oracle Times Ten Database | Rackspace Technology","field_topics":"","field_slug":"introduction-to-oracle-times-ten","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7296","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=7296"}],"version-history":[{"count":2,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7296\/revisions"}],"predecessor-version":[{"id":9357,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7296\/revisions\/9357"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/7298"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=7296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=7296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=7296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}