Desarrollador(es) | Corporación Oracle |
---|---|
Versión estable | 18.1.4 |
Plataforma | Multiplataforma |
Tipo | Sistema de gestión de bases de datos relacionales |
Licencia | Propiedad |
Sitio web | Página de inicio de TimesTen |
Oracle TimesTen In-Memory Database es un sistema de gestión de bases de datos relacionales en memoria con persistencia y alta disponibilidad. Originalmente diseñado e implementado en los laboratorios de Hewlett-Packard en Palo Alto, California , TimesTen se convirtió en una empresa independiente en 1996 y fue adquirido por Oracle Corporation en 2005. [1]
Las bases de datos TimesTen son persistentes y pueden tener una alta disponibilidad. Debido a que son bases de datos en memoria, ofrecen una latencia muy baja y un alto rendimiento. Ofrecen API e interfaces de bases de datos relacionales estándar, como los lenguajes SQL y PL/SQL . Las aplicaciones acceden a TimesTen mediante API de bases de datos estándar, como ODBC y JDBC .
TimesTen se puede utilizar como una base de datos independiente y también se utiliza a menudo como caché frente a otra base de datos relacional, como Oracle Database . [2] Se utiliza con frecuencia en aplicaciones OLTP de gran volumen , como la facturación de telecomunicaciones prepagas y el comercio financiero. También se utiliza para aplicaciones de lectura intensiva, como sitios web muy grandes y servicios basados en la ubicación.
TimesTen se puede configurar como un sistema en clúster sin recursos compartidos (TimesTen Scaleout) que admite bases de datos mucho más grandes que la RAM disponible en una sola máquina y proporciona un rendimiento escalable y alta disponibilidad. También se puede configurar en pares de bases de datos activas/en espera replicadas (TimesTen Classic) que brindan alta disponibilidad y un tiempo de respuesta de microsegundos.
TimesTen funciona en Linux , Solaris y AIX y también admite aplicaciones cliente que se ejecutan en Windows y macOS . [3]
TimesTen es una base de datos en memoria que proporciona un tiempo de acceso a los datos muy rápido. Garantiza que todos los datos residirán en la memoria física (RAM) durante el tiempo de ejecución. Esto permite simplificar los algoritmos internos de búsqueda y gestión de datos utilizados, lo que da como resultado tiempos de respuesta muy bajos incluso en hardware de consumo. TimesTen puede hacer uso de la RAM disponible en su máquina host, hasta terabytes de tamaño; utilizando TimesTen se admiten bases de datos de escalabilidad mucho más grandes que la RAM de una sola máquina.
TimesTen admite los conceptos estándar de bases de datos relacionales. Las tablas constan de filas y las filas de columnas de tipos de datos específicos. Los datos se manipulan mediante SQL. Las transacciones permiten manipular los datos con los niveles adecuados de atomicidad y aislamiento; TimesTen admite todas las propiedades ACID estándar que se esperan de las bases de datos relacionales.
Los tipos de datos admitidos por TimesTen son en general un subconjunto de los admitidos por Oracle Database, incluidos NUMBER, VARCHAR y LOB; también se admiten tipos de datos específicos de TimesTen, como números enteros binarios.
Las aplicaciones acceden a las bases de datos TimesTen mediante API relacionales estándar como ODBC , JDBC , OCI y ODPI-C. Esto permite escribir aplicaciones en muchos lenguajes y entornos de programación. Las aplicaciones utilizan esas API para acceder y manipular datos mediante SQL estándar. Los procedimientos almacenados también se pueden implementar y ejecutar mediante PL/SQL.
Aunque se trata de una base de datos en memoria, las bases de datos TimesTen son persistentes y pueden tener una alta disponibilidad . En tiempo de ejecución, todos los datos de TimesTen están en la RAM; sin embargo, TimesTen utiliza un almacenamiento no volátil para la persistencia y la capacidad de recuperación de la base de datos. TimesTen almacena instantáneas de la base de datos, llamadas archivos de punto de control, en un sistema de archivos local. Además, todas las modificaciones a la base de datos también se registran en archivos de registro de transacciones. La combinación de archivos de punto de control y archivos de registro de transacciones permite a TimesTen recuperar la base de datos en caso de una falla del sistema.
Además, las bases de datos TimesTen se pueden replicar en múltiples máquinas para proporcionar alta disponibilidad y recuperación ante desastres.
Las aplicaciones pueden conectarse a bases de datos TimesTen de forma tradicional, mediante el protocolo cliente/servidor TCP/IP como transporte subyacente, o en modo directo. El modo directo permite que las aplicaciones que se ejecutan en la misma máquina que la base de datos eviten sobrecargas de pila de red y de cambio de contexto . En tiempo de ejecución, los datos de una base de datos TimesTen se almacenan en memoria compartida ; esto permite que los procesos de la aplicación se conecten directamente a la memoria de la base de datos y accedan a ella sin sobrecargas de IPC o de cambio de contexto. Las mismas API y capacidades están disponibles en ambos modos.
Debido a que las bases de datos TimesTen son persistentes y pueden proporcionar alta disponibilidad, se pueden utilizar como la única base de datos en muchas soluciones.
Sin embargo, las bases de datos TimesTen suelen utilizarse junto con otras bases de datos como Oracle Database, y una base de datos TimesTen sirve como caché para un subconjunto de datos en la base de datos tradicional (quizás más grande).
TimesTen ofrece la capacidad de almacenar en caché datos de una fuente de Oracle Database . Para utilizar el almacenamiento en caché de Oracle Database, se definen uno o más objetos SQL conocidos como grupos de caché . Un grupo de caché es un conjunto de una o más tablas de base de datos relacionadas y permite subconjuntos de sus filas o columnas. Las tablas de base de datos de un grupo de caché deben tener una clave principal definida o un índice único declarado en un conjunto de columnas que no admiten valores nulos y deben estar relacionadas en una jerarquía padre-hijo a través de restricciones de clave principal - clave externa . Los predicados SQL se pueden utilizar para controlar qué datos se almacenarán en caché.
Una vez que se define un grupo de caché, se puede "cargar" dicho grupo, lo que permite almacenar en caché los datos de Oracle Database en TimesTen. Las aplicaciones pueden leer y escribir en los grupos de caché, y todas las modificaciones de datos se sincronizarán con las tablas de Oracle Database correspondientes.
También se pueden utilizar otras soluciones como Oracle Golden Gate para sincronizar datos entre TimesTen y otras bases de datos, permitiendo además utilizar TimesTen como caché muy rápido frente a otras bases de datos.
TimesTen se puede configurar de dos maneras, llamadas TimesTen Classic y TimesTen Scaleout.
TimesTen Classic implementa bases de datos en memoria que se implementan en una sola máquina, pero que se pueden replicar en otras máquinas para lograr una alta disponibilidad. Las bases de datos proporcionadas por TimesTen Classic ofrecen una latencia extremadamente baja, ya que las consultas no requieren ninguna E/S de red y todos los datos son locales.
El mecanismo de replicación de TimesTen Classic permite un sistema de alta disponibilidad mediante el envío de actualizaciones de bases de datos entre dos o más hosts. Normalmente, se utiliza un par de bases de datos activas y en espera para lograr la máxima disponibilidad. [4] Además de las bases de datos activas y en espera, se pueden configurar varias bases de datos de suscriptores para que funcionen como copias de recuperación ante desastres o granjas de solo lectura.
TimesTen Scaleout permite que una única base de datos TimesTen abarque muchas máquinas. Se utiliza una arquitectura de uso compartido para distribuir datos entre varias instancias de TimesTen que se ejecutan en muchas máquinas. Todas las máquinas pueden consultar y modificar todos los datos de la base de datos, y todas las propiedades ACID de la base de datos son totalmente compatibles. Se conservan varias copias de los datos para lograr una alta disponibilidad. Las bases de datos proporcionadas por TimesTen Scaleout pueden ser más grandes que la cantidad de RAM disponible en una sola máquina, y el rendimiento de la base de datos es escalable a medida que se agregan más máquinas.
TimesTen fue fundada en los laboratorios de HP por Marie-Anne Neimat, [5] Sherry Listgarten, Kurt Shoens y Kevin Wilkerson, bajo el nombre de "Smallbase". En HP, Jean-René Bouvier decidió integrar Smallbase en HP OpenCall , que hizo el primer uso comercial del producto en 1995. En 1996, el producto se escindió en una empresa emergente independiente financiada por capital de riesgo con sede en Mountain View, California, bajo el liderazgo del director ejecutivo Jim Groff. El producto se hizo popular para equipos de telecomunicaciones, ya que se requerían tiempos de respuesta en milisegundos o incluso microsegundos para aplicaciones como la conmutación de paquetes . La empresa tenía 90 empleados y era rentable cuando fue adquirida por Oracle Corporation en 2005. [6] Después de la adquisición, se agregaron muchas funciones de base de datos Oracle a TimesTen, como soporte para PL/SQL e integración con Oracle SQL Developer y Oracle Enterprise Manager . TimesTen Scaleout se agregó en 2018.