Jump to content

TimesTen: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Remove unnecessary details; add TimesTen Classic and TimesTen Scaleout; explain "direct mode"; improved organization
Tags: references removed Visual edit
Fix for wrongly used parameter
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Advert|date=August 2014}}
{{Infobox software
{{Infobox software
| name = Oracle TimesTen In-Memory Database
| name = Oracle TimesTen In-Memory Database
| title =
| logo = Oracle logo.svg
| logo = Oracle logo.svg
| logo size = 250px
| logo size = 250px
Line 22: Line 20:
| size =
| size =
| language =
| language =
| status = Active
| genre = [[Relational database management system]]
| genre = [[Relational database management system]]
| license = [[Proprietary software|Proprietary]]
| license = [[Proprietary software|Proprietary]]
Line 28: Line 25:
}}
}}


'''TimesTen''' is an [[In-memory database|in-memory]], [[relational database management system]] with persistence and recoverability. 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.<ref name="acquisition">{{cite web|title=Oracle acquires TimesTen database software|url=https://www.computerworld.com/article/2809130/oracle-acquires-timesten-database-software.html|url-status=live|publisher=Computerworld}}</ref>
'''Oracle TimesTen In-Memory Database''' is an [[In-memory database|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.<ref name="acquisition">{{cite web|title=Oracle acquires TimesTen database software|url=https://www.computerworld.com/article/2809130/oracle-acquires-timesten-database-software.html|publisher=Computerworld}}</ref>


TimesTen databases are persistent and can be highly available. Because it is an in-memory database it provides very low latency and high throughput. It provides standard relational database APIs and interfaces such as the [[SQL]] and [[PL/SQL]] languages. Applications access TimesTen using standard database APIs such as [[Open Database Connectivity|ODBC]] and [[Java Database Connectivity|JDBC]].
All data within a TimesTen database is located in physical memory (RAM), which means that no data operation requires disk I/O. This is unlike traditional disk-optimized relational databases such as the [[Oracle Database]], [[IBM DB2|DB2]], [[Informix]] or [[Microsoft SQL Server|SQL Server]], whose designs must contain algorithms that attempt to minimize disk accesses.<ref>{{cite journal|last= Wang|first= Wenguang|title= Storage Management in RDBMS|publisher= CiteSeerX|citeseerx= 10.1.1.138.6378|year= 2001}}</ref> TimesTen provides applications with short, consistent response-times and very high throughput as required by applications with database-intensive workloads.


TimesTen can be used as a standalone database, and is also often used as a cache in front of another relational database such as [[Oracle Database]].<ref>{{Cite web|title=Oracle TimesTen Application-Tier Database Cache Overview|url=https://www.oracle.com/database/technologies/timesten-cache.html|website=Oracle}}</ref> It is frequently used in very high volume [[Online transaction processing|OLTP]] applications such as prepaid telecom billing and financial trading. It is also used for read-intensive applications such as very large websites and location-based services.
As memory operates far faster than hard disk, TimesTen is used in applications where [[service-level agreements]] require low and predictable response times, such as telecommunications, real-time financial-services trading applications, network equipment, and large web applications. Also, unlike other memory-caching systems that use key-value pairs (such as [[Memcached]], [[Hazelcast]] or [[Oracle Coherence|Coherence]]), TimesTen can be accessed with standard interfaces such as [[Open Database Connectivity|ODBC]] and [[Java Database Connectivity|JDBC]] and provides the functionality of the [[SQL]] and [[PL/SQL]] languages.


TimesTen can be configured as a shared-nothing clustered system (TimesTen Scaleout) supporting databases much larger than the RAM available on a single machine, and providing scalable throughput and high availability. It can also be configured in replicated active/standby pairs of databases (TimesTen Classic) providing high availability and microsecond response time.
Applications with data residing in an [[Oracle Database]] can utilize TimesTen through a database caching option (as distinct from Oracle Database In-Memory<ref>{{Cite web|title=Oracle Database In-Memory|url=https://www.oracle.com/database/technologies/in-memory.html|url-status=live|website=Oracle}}</ref>), in which TimesTen functions as an in-memory cache database in front of an Oracle Database.<ref>{{Cite web|title=Oracle TimesTen Application-Tier Database Cache Overview|url=https://www.oracle.com/database/technologies/timesten-cache.html|url-status=live|website=Oracle}}</ref>


TimesTen runs on most major [[Unix]]/[[Linux]] platforms and also supports client application running on [[Microsoft Windows|Windows]] and [[macOS]].<ref>
TimesTen runs on [[Linux]], [[Oracle Solaris|Solaris]] and [[IBM AIX|AIX]] and also supports client applications running on [[Microsoft Windows|Windows]] and [[macOS]].<ref>
{{cite web|title=TimesTen Supported Platforms (from TimesTen FAQ)|url=http://www.oracle.com/technetwork/products/timesten/faq-091526.html#GENERAL6|url-status=live}}
{{cite web|title=TimesTen Supported Platforms (from TimesTen FAQ)|url=http://www.oracle.com/technetwork/products/timesten/faq-091526.html#GENERAL6}}
</ref>
</ref>


==Technology==
==Technology==


TimesTen is an [[in-memory database]] that provides very fast data access time. It ensures that all data will reside in physical memory (RAM) during run time. This allows the search and data management algorithms used to be simplified, resulting in very low response times even on commodity hardware.
TimesTen is an [[in-memory database]] that provides very fast data access time. It ensures that all data will reside in physical memory (RAM) during run time. This allows its internal search and data management algorithms used to be simplified, resulting in very low response times even on commodity hardware. TimesTen can make use of available [[random-access memory|RAM]] available on its host machine, up to terabytes in size; using TimesTen Scaleout databases much larger than the RAM of a single machine are supported.


=== In-Memory Database ===
=== Database Concepts ===
TimesTen supports standard relational database concepts. Tables consist of rows; rows consist of columns of specific data types. Data is manipulated using SQL. Transactions allow data to be manipulated with appropriate levels of atomicity and isolation; TimesTen supports all standard [[ACID|ACID properties]] expected of relational databases.


Datatypes supported by TimesTen are in general a subset of those supported by Oracle Database, including NUMBER, VARCHAR and LOBs; TimesTen specific datatypes such as binary integers are also supported.
At runtime the data in a TimesTen database is stored in [[shared memory]]. The size of a TimesTen database is practically limited only by the amount of [[random-access memory|RAM]] available on its host computer, up to terabytes in size.


Applications access TimesTen databases using standard relational APIs such as [[Open Database Connectivity|ODBC]], [[Java Database Connectivity|JDBC]], OCI, and ODPI-C. This allows applications to be written in many programming languages and environments. Applications use those APIs to access and manipulate data using standard SQL. Stored procedures can also be implemented and executed using PL/SQL.
====Application connection modes====
Applications access TimesTen databases using standard relational APIs such as [[Open Database Connectivity|ODBC]], [[Java Database Connectivity|JDBC]], OCI, and ODPI-C. This allows applications to be written in many programming languages. Applications use those APIs to access and manipulate data using standard SQL. Stored procedures can also be implemented and executed using PL/SQL.

Applications may connect to TimesTen databases either in a traditional client/server manner using TCP/IP as the underlying transport or in direct mode. Direct mode allows applications running on the same machine as the database to avoid network stack and [[Context switch|context switching]] overheads. At runtime the data in a TimesTen database is stored in [[shared memory]]; this allows application processes to directly attach to the database memory and access it without [[Inter-process communication|IPC]] or context switch overheads. The same APIs and capabilities are available in both modes.


=== Persistence ===
=== Persistence ===
Though an in-memory database, TimesTen databases are persistent and can be [[High availability|highly available]]. At runtime all TimesTen data is in RAM, however TimesTen utilizes non-volatile storage for database persistence and recoverability. TimesTen stores snapshots of the database, called checkpoint files, in a local filesystem. In addition all modifications to the database are also recorded in transaction log files. The combination of checkpoint files and transaction log files allow TimesTen to recover the database in the event of a system failure.


In addition TimesTen databases can be replicated to multiple machines to provide for high availability and disaster recovery.
====Checkpoint and transaction log files====


=== Connection Methods ===
At runtime all TimesTen data exists in RAM, however TimesTen utilizes non-volatile storage for database persistence and recoverability. TimesTen stores snapshots of the database, called checkpoint files, in a local filesystem. In addition all modifications to the database are also recorded in transaction log files. The combination of checkpoint files and transaction log files allow TimesTen to recover the database in the event of a system failure.
Applications may connect to TimesTen databases either in a traditional client/server manner using TCP/IP as the underlying transport or in direct mode. Direct mode allows applications running on the same machine as the database to avoid network stack and [[context switch]]ing overheads. At runtime the data in a TimesTen database is stored in [[shared memory]]; this allows application processes to directly attach to the database memory and access it without [[Inter-process communication|IPC]] or context switch overheads. The same APIs and capabilities are available in both modes.


===Caching===
===In-memory database cache===

Because TimesTen databases are persistent and can provide high availability, they can be used as the only database in many solutions.

However, TimesTen databases are often used alongside other databases such as Oracle Database, with a TimesTen database serving as a cache for a subset of data in the (perhaps larger) traditional database.


TimesTen provides the capability to cache data from an [[Oracle Database]] source. To utilize Oracle Database caching, one defines one or more SQL objects known as ''cache groups''. A ''cache group'' is a set of one or more related database tables and allows for subsets of its rows and/or columns. Database tables in a cache group must each have a defined [[Unique key|primary key]] or a unique index declared across a set of non-nullable columns and must be related in a parent-child hierarchy via [[Unique key|primary key]]-[[foreign key]] constraints. [[SQL]] predicates can be used to control what data is to be cached.
TimesTen provides the capability to cache data from an [[Oracle Database]] source. To utilize Oracle Database caching, one defines one or more SQL objects known as ''cache groups''. A ''cache group'' is a set of one or more related database tables and allows for subsets of its rows and/or columns. Database tables in a cache group must each have a defined [[Unique key|primary key]] or a unique index declared across a set of non-nullable columns and must be related in a parent-child hierarchy via [[Unique key|primary key]]-[[foreign key]] constraints. [[SQL]] predicates can be used to control what data is to be cached.
Line 65: Line 66:
Once a cache group is defined, the cache group can then be "loaded", allowing Oracle Database data to be cached in TimesTen. Applications can then read from and write to cache groups, and all data modifications will then be synchronized with the corresponding Oracle Database tables.
Once a cache group is defined, the cache group can then be "loaded", allowing Oracle Database data to be cached in TimesTen. Applications can then read from and write to cache groups, and all data modifications will then be synchronized with the corresponding Oracle Database tables.


Other solutions such as [[Oracle GoldenGate|Oracle Golden Gate]] can also be used to synchronize data between TimesTen and other databases, also allowing TimesTen to be used as a very fast cache in front of other databases.
===Event notification===

TimesTen provides an event notification mechanism through the transaction log API (XLA). XLA provides functions which allow applications to be notified of data changes occurring in TimesTen tables (and also [[Data Definition Language|DDL]] occurring in the TimesTen database). XLA can also be used in conjunction with [[materialized view]]s to simplify the process of monitoring changes made to rows spanning multiple tables.


== Deployment Modes ==
== Deployment Modes ==
TimesTen can be configured in two ways, called TimesTen Classic and TimesTen Scaleout.
TimesTen can be configured in two ways, called TimesTen Classic and TimesTen Scaleout.


=== TimesTen Classic ===
=== TimesTen Classic ===
TimesTen Classic implements in-memory databases that are implemented on a single machine, but which can be replicated to other machines for high availability. Databases provided by TimesTen Classic provide extremely low latency, as queries do not require any network I/O and all data is local.
TimesTen Classic implements in-memory databases that are implemented on a single machine, but which can be replicated to other machines for high availability. Databases provided by TimesTen Classic provide extremely low latency, as queries do not require any network I/O and all data is local.


The TimesTen Classic replication mechanism enables a [[High availability|highly available]] system by sending database updates between two or more hosts. Typically an active-standby pair of databases is used for highest availability.<ref>{{cite web|title=TimesTen In-Memory Database Replication Guide|url=https://docs.oracle.com/database/timesten-18.1/TTREP/toc.htm|url-status=dead|publisher=Oracle Corporation|archiveurl=|archivedate=}}</ref> In addition to the active and standby databases, multiple subscriber databases can be configured to serve as disaster recovery copies or read-only farms.
The TimesTen Classic replication mechanism enables a [[High availability|highly available]] system by sending database updates between two or more hosts. Typically an active-standby pair of databases is used for highest availability.<ref>{{cite web|title=TimesTen In-Memory Database Replication Guide|url=https://docs.oracle.com/database/timesten-18.1/TTREP/toc.htm|url-status=dead|publisher=Oracle Corporation|archiveurl=https://web.archive.org/web/20211105205914/https://docs.oracle.com/database/timesten-18.1/TTREP/toc.htm|archivedate=2021-11-05|access-date=2021-11-05}}</ref> In addition to the active and standby databases, multiple subscriber databases can be configured to serve as disaster recovery copies or read-only farms.


=== TimesTen Scaleout ===
=== TimesTen Scaleout ===
TimesTen Scaleout allows a single TimesTen database to span many machines. A [[shared-nothing architecture]] is used to distribute data across multiple TimesTen instances running on many machines. All machines can query and modify all data in the database, and all database [[ACID|ACID properties]] are fully supported. Multiple copies of data are kept for high availability. Databases provided by TimesTen Scaleout can be larger than the amount of RAM available on a single machine, and database throughput is scalable as more machines are added.
TimesTen Scaleout allows a single TimesTen database to span many machines. A [[shared-nothing architecture]] is used to distribute data across multiple TimesTen instances running on many machines. All machines can query and modify all data in the database, and all database [[ACID|ACID properties]] are fully supported. Multiple copies of data are kept for high availability. Databases provided by TimesTen Scaleout can be larger than the amount of RAM available on a single machine, and database throughput is scalable as more machines are added.

== Typical Uses ==

* Telecom billing and call processing
* Financial services security trading
* Scalable database services in very large websites
* Location-based services


==History==
==History==


TimesTen was founded in [[Hewlett-Packard|HP]] labs by Marie-Anne Neimat,<ref name="marie-anne">{{cite magazine|title=2004 Fast 50 Winner - Marie-Anne Niemat|url=http://www.fastcompany.com/fast50_04/winners/neimat.html|magazine=Fast Company|date=December 2003}}</ref> Sherry Listgarten, Kurt Shoens and Kevin Wilkerson, under the name of "Smallbase". At HP, Jean-René Bouvier decided to embed Smallbase into [[HP OpenCall]], which made the first commercial use of the product in 1995. In 1996, the product was spun off into a separate [[venture capital]] funded [[startup company]] based in [[Mountain View, California]] under the leadership of CEO Jim Groff. The product became popular for telecommunications equipment, as response times in the [[milliseconds]] or even [[microseconds]] were required for applications like [[Packet (information technology)|packet]] switching. The company had 90 employees and was profitable when it was acquired by [[Oracle Corporation]] in 2005.<ref>{{cite news|title=Oracle Acquires TimesTen for Real-Time Database|url=http://www.itjungle.com/tug/tug061605-story03.html|newspaper=The Unix Guardian|url-status=dead|archiveurl=https://web.archive.org/web/20120126224204/http://www.itjungle.com/tug/tug061605-story03.html|archivedate=2012-01-26}}</ref> After the acquisition, Neimat remained as the director of TimesTen development at Oracle, adding many Oracle database features to the product such as support for [[PL/SQL]] and integration with [[Oracle SQL Developer]] and [[Oracle Enterprise Manager]].
TimesTen was founded in [[Hewlett-Packard|HP]] labs by Marie-Anne Neimat,<ref name="marie-anne">{{cite magazine|title=2004 Fast 50 Winner - Marie-Anne Niemat|url=http://www.fastcompany.com/fast50_04/winners/neimat.html|magazine=Fast Company|date=December 2003}}</ref> Sherry Listgarten, Kurt Shoens and Kevin Wilkerson, under the name of "Smallbase". At HP, Jean-René Bouvier decided to embed Smallbase into [[HP OpenCall]], which made the first commercial use of the product in 1995. In 1996, the product was spun off into a separate [[venture capital]] funded [[startup company]] based in [[Mountain View, California]] under the leadership of CEO Jim Groff. The product became popular for telecommunications equipment, as response times in the [[milliseconds]] or even [[microseconds]] were required for applications like [[Packet (information technology)|packet]] switching. The company had 90 employees and was profitable when it was acquired by [[Oracle Corporation]] in 2005.<ref>{{cite news|title=Oracle Acquires TimesTen for Real-Time Database|url=http://www.itjungle.com/tug/tug061605-story03.html|newspaper=The Unix Guardian|url-status=dead|archiveurl=https://web.archive.org/web/20120126224204/http://www.itjungle.com/tug/tug061605-story03.html|archivedate=2012-01-26}}</ref> After the acquisition, many Oracle database features were added to TimesTen such as support for [[PL/SQL]] and integration with [[Oracle SQL Developer]] and [[Oracle Enterprise Manager]]. TimesTen Scaleout was added in 2018.


==References==
==References==

Latest revision as of 09:54, 2 June 2024

Oracle TimesTen In-Memory Database
Developer(s)Oracle Corporation
Stable release
18.1.4
PlatformCross-platform
TypeRelational database management system
LicenseProprietary
WebsiteTimesTen Home Page

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.[1]

TimesTen databases are persistent and can be highly available. Because it is an in-memory database it provides very low latency and high throughput. It provides standard relational database APIs and interfaces such as the SQL and PL/SQL languages. Applications access TimesTen using standard database APIs such as ODBC and JDBC.

TimesTen can be used as a standalone database, and is also often used as a cache in front of another relational database such as Oracle Database.[2] It is frequently used in very high volume OLTP applications such as prepaid telecom billing and financial trading. It is also used for read-intensive applications such as very large websites and location-based services.

TimesTen can be configured as a shared-nothing clustered system (TimesTen Scaleout) supporting databases much larger than the RAM available on a single machine, and providing scalable throughput and high availability. It can also be configured in replicated active/standby pairs of databases (TimesTen Classic) providing high availability and microsecond response time.

TimesTen runs on Linux, Solaris and AIX and also supports client applications running on Windows and macOS.[3]

Technology

[edit]

TimesTen is an in-memory database that provides very fast data access time. It ensures that all data will reside in physical memory (RAM) during run time. This allows its internal search and data management algorithms used to be simplified, resulting in very low response times even on commodity hardware. TimesTen can make use of available RAM available on its host machine, up to terabytes in size; using TimesTen Scaleout databases much larger than the RAM of a single machine are supported.

Database Concepts

[edit]

TimesTen supports standard relational database concepts. Tables consist of rows; rows consist of columns of specific data types. Data is manipulated using SQL. Transactions allow data to be manipulated with appropriate levels of atomicity and isolation; TimesTen supports all standard ACID properties expected of relational databases.

Datatypes supported by TimesTen are in general a subset of those supported by Oracle Database, including NUMBER, VARCHAR and LOBs; TimesTen specific datatypes such as binary integers are also supported.

Applications access TimesTen databases using standard relational APIs such as ODBC, JDBC, OCI, and ODPI-C. This allows applications to be written in many programming languages and environments. Applications use those APIs to access and manipulate data using standard SQL. Stored procedures can also be implemented and executed using PL/SQL.

Persistence

[edit]

Though an in-memory database, TimesTen databases are persistent and can be highly available. At runtime all TimesTen data is in RAM, however TimesTen utilizes non-volatile storage for database persistence and recoverability. TimesTen stores snapshots of the database, called checkpoint files, in a local filesystem. In addition all modifications to the database are also recorded in transaction log files. The combination of checkpoint files and transaction log files allow TimesTen to recover the database in the event of a system failure.

In addition TimesTen databases can be replicated to multiple machines to provide for high availability and disaster recovery.

Connection Methods

[edit]

Applications may connect to TimesTen databases either in a traditional client/server manner using TCP/IP as the underlying transport or in direct mode. Direct mode allows applications running on the same machine as the database to avoid network stack and context switching overheads. At runtime the data in a TimesTen database is stored in shared memory; this allows application processes to directly attach to the database memory and access it without IPC or context switch overheads. The same APIs and capabilities are available in both modes.

Caching

[edit]

Because TimesTen databases are persistent and can provide high availability, they can be used as the only database in many solutions.

However, TimesTen databases are often used alongside other databases such as Oracle Database, with a TimesTen database serving as a cache for a subset of data in the (perhaps larger) traditional database.

TimesTen provides the capability to cache data from an Oracle Database source. To utilize Oracle Database caching, one defines one or more SQL objects known as cache groups. A cache group is a set of one or more related database tables and allows for subsets of its rows and/or columns. Database tables in a cache group must each have a defined primary key or a unique index declared across a set of non-nullable columns and must be related in a parent-child hierarchy via primary key-foreign key constraints. SQL predicates can be used to control what data is to be cached.

Once a cache group is defined, the cache group can then be "loaded", allowing Oracle Database data to be cached in TimesTen. Applications can then read from and write to cache groups, and all data modifications will then be synchronized with the corresponding Oracle Database tables.

Other solutions such as Oracle Golden Gate can also be used to synchronize data between TimesTen and other databases, also allowing TimesTen to be used as a very fast cache in front of other databases.

Deployment Modes

[edit]

TimesTen can be configured in two ways, called TimesTen Classic and TimesTen Scaleout.

TimesTen Classic

[edit]

TimesTen Classic implements in-memory databases that are implemented on a single machine, but which can be replicated to other machines for high availability. Databases provided by TimesTen Classic provide extremely low latency, as queries do not require any network I/O and all data is local.

The TimesTen Classic replication mechanism enables a highly available system by sending database updates between two or more hosts. Typically an active-standby pair of databases is used for highest availability.[4] In addition to the active and standby databases, multiple subscriber databases can be configured to serve as disaster recovery copies or read-only farms.

TimesTen Scaleout

[edit]

TimesTen Scaleout allows a single TimesTen database to span many machines. A shared-nothing architecture is used to distribute data across multiple TimesTen instances running on many machines. All machines can query and modify all data in the database, and all database ACID properties are fully supported. Multiple copies of data are kept for high availability. Databases provided by TimesTen Scaleout can be larger than the amount of RAM available on a single machine, and database throughput is scalable as more machines are added.

Typical Uses

[edit]
  • Telecom billing and call processing
  • Financial services security trading
  • Scalable database services in very large websites
  • Location-based services

History

[edit]

TimesTen was founded in HP labs by Marie-Anne Neimat,[5] Sherry Listgarten, Kurt Shoens and Kevin Wilkerson, under the name of "Smallbase". At HP, Jean-René Bouvier decided to embed Smallbase into HP OpenCall, which made the first commercial use of the product in 1995. In 1996, the product was spun off into a separate venture capital funded startup company based in Mountain View, California under the leadership of CEO Jim Groff. The product became popular for telecommunications equipment, as response times in the milliseconds or even microseconds were required for applications like packet switching. The company had 90 employees and was profitable when it was acquired by Oracle Corporation in 2005.[6] After the acquisition, many Oracle database features were added to TimesTen such as support for PL/SQL and integration with Oracle SQL Developer and Oracle Enterprise Manager. TimesTen Scaleout was added in 2018.

References

[edit]
  1. ^ "Oracle acquires TimesTen database software". Computerworld.
  2. ^ "Oracle TimesTen Application-Tier Database Cache Overview". Oracle.
  3. ^ "TimesTen Supported Platforms (from TimesTen FAQ)".
  4. ^ "TimesTen In-Memory Database Replication Guide". Oracle Corporation. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  5. ^ "2004 Fast 50 Winner - Marie-Anne Niemat". Fast Company. December 2003.
  6. ^ "Oracle Acquires TimesTen for Real-Time Database". The Unix Guardian. Archived from the original on 2012-01-26.
[edit]