Открыть сервис

Oracle TimesTen

Oracle TimesTen — это реляционная база данных с оперативной памятью (In-Memory Database, IMDB) от компании Oracle, предназначенная для приложений, требующих сверхнизкой задержки при обработке транзакций и высокой пропускной способности. Данные в TimesTen хранятся и обрабатываются в оперативной памяти, а не на диске (твёрдотельном накопителе или жёстком диске), что позволяет сократить время отклика до микросекундного диапазона. База данных поддерживает стандартный язык SQL, а также интерфейсы JDBC, ODBC, ODP.NET и PL/SQL, что обеспечивает совместимость с приложениями, написанными для Oracle Database.

История

Разработка TimesTen началась в 1992 году в компании TimesTen Performance Software, основанной выходцами из Hewlett-Packard. Изначально продукт назывался TimesTen. В 1996 году компания выпустила первую коммерческую версию базы данных, ориентированную на телекоммуникационную отрасль и финансовый сектор. В 2005 году Oracle приобрела TimesTen Performance Software, после чего продукт был переименован в Oracle TimesTen In-Memory Database. После приобретения Oracle интегрировала TimesTen в своё портфолио, расширив поддержку платформ и функциональность, включая репликацию данных и кэширование из Oracle Database.

В 2014 году, после выхода Oracle Database 12c, TimesTen стал частью стратегии Oracle по созданию гибридных архитектур, сочетающих дисковые и in-memory базы данных. В 2020-х годах продукт продолжал развиваться: появилась поддержка облачных сред Oracle Cloud Infrastructure (OCI) и Kubernetes.

Архитектура и характеристики

Oracle TimesTen хранит все данные в оперативной памяти, что исключает затраты времени на операции ввода-вывода (I/O). Для обеспечения сохранности данных при отключении питания или сбоях используется журнал транзакций, записываемый на диск (persistent logging). Снимки состояния базы данных также периодически сохраняются на диск (checkpointing).

Ключевые характеристики:

Классификация

Oracle TimesTen относится к нескольким категориям:

Функциональные возможности

Репликация

TimesTen поддерживает два механизма репликации:

Кэширование из Oracle Database

Чаще всего Oracle TimesTen используется как кэш для Oracle Database. Поддерживаются три режима:

Управление памятью

TimesTen использует собственный менеджер памяти, который выделяет большую часть ОЗУ под фиксированный буферный пул. Размер базы данных задаётся администратором заранее и может быть увеличен при условии наличия свободной оперативной памяти. Для мониторинга используется команда ttConfiguration и графическая консоль Oracle Enterprise Manager.

Интеграция с Java и.NET

TimesTen поддерживает JDBC (Java Database Connectivity) и ODP.NET (Oracle Data Provider for.NET), что позволяет Java- и.NET-приложениям подключаться к in-memory базе данных без дополнительных драйверов. В версии 18.1 была добавлена поддержка языка Python через модуль cx_Oracle.

Применение

Телекоммуникации

Производительность TimesTen используется в системах биллинга, обработки вызовов (SS7, SIP) и управления абонентами реального времени. Например, решения для хранения профилей пользователей (HSS — Home Subscriber Server) часто строятся на базе TimesTen. Компания Oracle указывает, что до 40% рынка телекоммуникационных in-memory баз данных в мире приходится на TimesTen (данные на 2020 год).

Финансовые услуги

В банковских системах для электронных платежей, торговых платформ и обработки заявок на кредит время отклика является критическим. TimesTen применяется в системах риска-менеджмента и управления ликвидностью. Например, платформа Oracle FLEXCUBE поддерживает кэширование данных через TimesTen.

Интернет-реклама и Real-Time Bidding (RTB)

Системы аукционов рекламных объявлений (Ad Exchanges) обрабатывают миллионы запросов в секунду. TimesTen используется для хранения профилей пользователей, правил таргетинга и аукционов в реальном времени.

Игровая индустрия

В многопользовательских онлайн-играх (MMO) и игровых платформах (например, для хранения игровых сессий, лидеров и инвентаря) TimesTen позволяет обеспечить низкое время ожидания.

Кэширование Oracle Database

Наиболее распространённый сценарий: TimesTen размещается на том же сервере, что и приложение, и служит локальным кэшем для данных из удалённой Oracle Database. Это снижает нагрузку на сеть и ускоряет доступ к часто используемым данным (например, справочникам, пользовательским сессиям или историческим остаткам).

Примеры использования

Ограничения и критика

Сравнение с аналогами

ХарактеристикаOracle TimesTenRedisSAP HANAMemSQL (SingleStore)
Тип данныхРеляционная БДKey-value storeРеляционная + колоночнаяРеляционная (гибридная OLTP/OLAP)
SQLПолный SQL + PL/SQLНе полный SQL (через RedisJSON и RediSQL)Полный SQLПолный SQL
Поддержка ACIDДа (с журналом на диске)Ограниченная (зависит от настройки)ДаДа
Синхронная репликацияActive Standby PairRedis Sentinel/ClusterSystem ReplicationCluster с консенсусом
Интеграция с Oracle DatabaseПрямое кэшированиеЧерез сторонние адаптерыЧерез Oracle Big Data SQLЧерез JDBC

TimesTen занимает нишу низколатентных транзакционных приложений, где требуется реляционная модель данных и гарантии ACID, при этом не требуются аналитические возможности или неструктурированные хранилища.

Будущее разработки

Oracle продолжает развивать TimesTen как часть облачной платформы OCI. В 2021 году была выпущена версия 22.1 с поддержкой ARM64 и новыми типами индексов (в том числе для JSON). Компания также объявила о планах по интеграции TimesTen с Oracle MySQL и Oracle RAC (Real Application Clusters). В 2023 году Oracle анонсировала бета-версию TimesTen для OCI, где пользователи могут разворачивать in-memory базы данных в облаке с сохранением данных в объектном хранилище.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →