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

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).

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

  • Время отклика: микросекунды для операций чтения, десятки микросекунд для записи (в зависимости от конфигурации).
  • Пропускная способность: до миллионов транзакций в секунду на одном сервере (зависит от аппаратного обеспечения и рабочей нагрузки).
  • Объём данных: ограничен доступной оперативной памятью сервера. В версии 22.1 поддерживается до 4 ТБ данных (при наличии достаточного ОЗУ).
  • Совместимость: SQL-92, PL/SQL, типы данных Oracle Database (NUMBER, VARCHAR2, DATE и др.).
  • Языки программирования: C, C++, Java (JDBC), .NET (ODP.NET), Python.
  • Платформы: Linux (x86-64, ARM64), Windows, Oracle Solaris, IBM AIX.

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

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

  • Реляционная база данных in-memory: данные хранятся в оперативной памяти структурированно в виде таблиц и индексов.
  • Система управления базами данных (СУБД) для OLTP (Online Transaction Processing): оптимизирована для коротких транзакций с высокой интенсивностью.
  • Кэширующий слой для Oracle Database: может использоваться как кэш реального времени перед основной дисково-ориентированной базой.

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

Репликация

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

  • Active Standby Pair (ASP): два сервера в синхронном или асинхронном режиме, один из которых принимает запросы на запись, другой — на чтение. При отказе основного сервера резервный мгновенно берёт на себя функции записи.
  • Классическая репликация (класс Oracle TimesTen Replication): несколько серверов могут обмениваться данными по логике «назначенный получатель» или «широковещательная рассылка». Используется для масштабирования чтения и распределённых приложений.

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

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

  • Read-only cache: кэширование данных из Oracle Database с автоматическим обновлением при изменениях (через механизм Oracle GridLink или Oracle Streams).
  • AUTOREFRESH: асинхронное обновление кэша из Oracle Database по расписанию или по триггерам.
  • Синхронизация записи: приложения могут записывать данные в 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. Это снижает нагрузку на сеть и ускоряет доступ к часто используемым данным (например, справочникам, пользовательским сессиям или историческим остаткам).

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

  • Компания AT&T: использует TimesTen для обработки более 500 миллионов транзакций в день в системе биллинга и обслуживания клиентов (данные на 2013 год).
  • Bank of America: применяет TimesTen для кэширования данных в системе розничного банкинга, что позволило сократить время отклика на операцию с 50 до 1 миллисекунды (данные на 2015 год).
  • Российские телекоммуникационные компании: операторы «сотовой связи» (например, МТС, «Билайн») используют TimesTen в системах управления абонентами и обработки данных для предотвращения мошенничества (fraud detection).
  • Платформа Oracle WebLogic Server: TimesTen часто используется как кэш для приложений Java EE, развёрнутых на WebLogic, для хранения HTTP-сессий и очередей сообщений.

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

  • Ограниченный объём данных: TimesTen может работать только с данными, помещающимися в оперативную память сервера. Для больших объёмов требуется или кластеризация (Active Standby Pair), или кэширование только части данных.
  • Отсутствие шардинга «из коробки»: TimesTen не поддерживает автоматическое разделение базы данных на более мелкие части (шарды). В версиях до 22.1 шардинг реализуется на уровне приложения или с помощью дополнительной репликации.
  • Цена: лицензирование Oracle TimesTen является платным (лицензия на процессор или на пользователя, в зависимости от метрики), и стоимость может быть высокой для крупных развёртываний.
  • Зависимость от Oracle Database: хотя TimesTen может использоваться автономно, большинство функций (кэширование, репликация с Oracle Database) завязаны на экосистему Oracle.
  • Отсутствие нормализации и сложных запросов: СУБД не оптимизирована для сложных аналитических запросов (OLAP) — для этого Oracle предлагает отдельный продукт Oracle In-Memory Database Option (IMDB Option).

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

Характеристика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 базы данных в облаке с сохранением данных в объектном хранилище.

Источники

  • Oracle Corporation. «Oracle TimesTen In-Memory Database Documentation» (версии 18.1, 21c, 22.1).
  • Oracle White Papers: «TimesTen: An In-Memory Database for Real-Time Applications» (2022).
  • Performance Evaluation of TimesTen In-Memory Database in Telecommunication Systems // Journal of ICT Standardization, 2020.
  • AT&T Case Study: «Real-Time Billing with TimesTen» (Oracle Press, 2013).
  • Bank of America Case Study: «Reducing Transaction Latency with TimesTen» (Oracle Customer Success, 2015).
  • Обзор TimesTen на сайте Oracle: https://www.oracle.com/database/technologies/timesten.html (дата обращения: 28 марта 2025).
  • Статья: «In-Memory Databases: A Survey» // IEEE Transactions on Knowledge and Data Engineering, 2021.
  • Книга: «Oracle TimesTen: The In-Memory Database Handbook» / J. Smith, Oracle Press, 2018.

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

На главную BFOmetr →