TimesTen

Last updated
TimesTen
Developer(s) Oracle Corporation
Stable release
18.1.4
Platform Cross-platform
Type Relational database management system
License Proprietary
Website TimesTen 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]

Contents

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

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

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

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

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

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

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

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.

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

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

History

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.

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB/2, then DB2 until 2017 and finally changed to its present form.

MySQL Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, while allowing for near linear scalability. MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL.

An in-memory database is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that employ a disk storage mechanism. In-memory databases are faster than disk-optimized databases because disk access is slower than memory access and the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory eliminates seek time when querying the data, which provides faster and more predictable performance than disk.

Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

Polyhedra is a family of relational database management systems offered by ENEA AB, a Swedish company. The original version of Polyhedra was an in-memory database management system which could be used in high availability configurations; in 2006 Polyhedra Flash DBMS was introduced to allow databases to be stored in flash memory. All versions employ the client–server model to ensure the data are protected from misbehaving application software, and they use the same SQL, ODBC and type-4 JDBC interfaces. Polyhedra is targeted primarily for embedded use by Original Equipment Manufacturers (OEMs), and big-name customers include Ericsson, ABB, Emerson, Lockheed Martin, United Utilities and Siemens AG.

DataBlitz is a general purpose main memory database management system, developed by Lucent Bell Labs Research from 1993 to 1995. It replaced various home-grown database products used throughout Lucent beginning in 1997.

CUBRID ( "cube-rid") is an open-source SQL-based relational database management system (RDBMS) with object extensions developed by CUBRID Corp. for OLTP. The name CUBRID is a combination of the two words cube and bridge, cube standing for a space for data and bridge standing for data bridge.

Java Database Connectivity (JDBC) is an application programming interface (API) for the Java programming language, which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. It is part of the Java Standard Edition platform, from Oracle Corporation. It provides methods to query and update data in a database, and is oriented toward relational databases. A JDBC-to-ODBC bridge enables connections to any ODBC-accessible data source in the Java virtual machine (JVM) host environment.

Effi is C++ application development framework.

<span class="mw-page-title-main">Couchbase Server</span> Open-source NoSQL database

Couchbase Server, originally known as Membase, is an open-source, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value, or JSON document access, with low latency and high sustainability throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines.

In computing, Oracle Coherence is a Java-based distributed cache and in-memory data grid. It is claimed to be "intended for systems that require high availability, high scalability and low latency, particularly in cases when traditional relational database management systems provide insufficient throughput, or insufficient performance."

Versant Object Database (VOD) is an object database software product developed by Versant Corporation.

Amazon Relational Database Service is a distributed relational database service by Amazon Web Services (AWS). It is a web service running "in the cloud" designed to simplify the setup, operation, and scaling of a relational database for use in applications. Administration processes like patching the database software, backing up databases and enabling point-in-time recovery are managed automatically. Scaling storage and compute resources can be performed by a single API call to the AWS control plane on-demand. AWS does not offer an SSH connection to the underlying virtual machine as part of the managed service.

A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.

In computer science, in-memory processing is an emerging technology for processing of data stored in an in-memory database. In-memory processing is one method of addressing the performance and power bottlenecks caused by the movement of data between the processor and the main memory. Older systems have been based on disk storage and relational databases using SQL query language, but these are increasingly regarded as inadequate to meet business intelligence (BI) needs. Because stored data is accessed much more quickly when it is placed in random-access memory (RAM) or flash memory, in-memory processing allows data to be analysed in real time, enabling faster reporting and decision-making in business.

<span class="mw-page-title-main">Oracle NoSQL Database</span>

Oracle NoSQL Database is a NoSQL-type distributed key-value database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.

The following outline is provided as an overview of and topical guide to MySQL:

Database scalability is the ability of a database to handle changing demands by adding/removing resources. Databases use a host of techniques to cope.

References

  1. "Oracle acquires TimesTen database software". Computerworld.{{cite web}}: CS1 maint: url-status (link)
  2. "Oracle TimesTen Application-Tier Database Cache Overview". Oracle.{{cite web}}: CS1 maint: url-status (link)
  3. "TimesTen Supported Platforms (from TimesTen FAQ)".{{cite web}}: CS1 maint: url-status (link)
  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.