TimesTen - TimesTen

TimesTen
Oracle logo.svg
Разработчики)Корпорация Oracle
Стабильный выпуск
11грамм Выпуск 2 (11.2.2.8.0)
ПлатформаКроссплатформенность
ТипСистема управления реляционной базой данных
ЛицензияПроприетарный
Интернет сайтДомашняя страница TimesTen OTN

TimesTen является в памяти, система управления реляционной базой данных с настойчивостью и восстанавливаемостью. Первоначально разработан и реализован в Hewlett Packard лаборатории в Пало-Альто, Калифорния, TimesTen выделился в отдельный стартап в 1996 году и был приобретен Корпорация Oracle в 2005 году.[1]

Все данные в базе данных TimesTen находятся в физической памяти (RAM), что означает, что никакие операции с данными не требуют дискового ввода-вывода. В этом отличие от традиционных реляционных баз данных, оптимизированных для дисков, таких как База данных Oracle, DB2, Informix или же SQL Server, конструкции которого должны содержать алгоритмы, которые пытаются минимизировать доступ к диску.[2] TimesTen обеспечивает приложения с коротким, постоянным временем отклика и очень высокой пропускной способностью, как того требуют приложения с рабочими нагрузками, интенсивно использующими базы данных.[3]

Поскольку память работает намного быстрее, чем жесткий диск, TimesTen используется в приложениях, где соглашения об уровне обслуживания требуют низкого и предсказуемого времени отклика, например, для телекоммуникационных сетей, приложений для торговли финансовыми услугами в реальном времени, сетевого оборудования и крупных веб-приложений. Кроме того, в отличие от других систем кэширования памяти, в которых используются пары ключ-значение (например, Memcached, Hazelcast или же Согласованность ), TimesTen доступен через стандартные интерфейсы и обеспечивает функциональность SQL язык запросов.

Приложения с данными, находящимися в База данных Oracle может использовать TimesTen с помощью опции кэширования базы данных (в отличие от Oracle Database In-Memory[4][5]), в котором TimesTen функционирует как база данных кэша в памяти перед базой данных Oracle.[6]

TimesTen работает на большинстве основных Unix /Linux платформы и на различных Windows платформы, как в 32-битном, так и в 64-битном режимах.[7]

Технологии

TimesTen - это управление базой данных в памяти технология, обеспечивающая очень быстрое время доступа к данным. Предполагается, что все данные будут находиться в физической памяти (ОЗУ) во время выполнения.[8] В результате получается очень низкое время отклика, что обеспечивает высокую пропускную способность даже на стандартном оборудовании.[9]

Архитектура

Общие библиотеки

Функциональные возможности TimesTen содержатся в наборе общих библиотек, которые разработчики приложений связывают со своими приложениями, что позволяет TimesTen выполнять как часть процесса приложения. Этот подход с общей библиотекой отличается от обычного СУБД системы, в которых база данных по существу представляет собой набор отдельных процессов, к которым приложения подключаются посредством некоторой формы межпроцессного взаимодействия. Это сообщение может иметь форму клиент / сервер соединение, охватывающее сеть или это может быть какая-то форма внутрисистемного IPC, такая как соединение сокета домена Unix или механизм соединения на основе общей памяти.[10]

Резидентная база данных

Данные для каждой активной базы данных TimesTen хранятся в сегменте разделяемой памяти, что позволяет нескольким базам данных TimesTen быть активными одновременно, а также позволяет приложению одновременно обращаться к нескольким базам данных TimesTen в одной системе. На 64-битных платформах размер базы данных TimesTen практически ограничен только размером баран доступен на его главном компьютере. У одного клиента есть производственная база данных TimesTen, приближающаяся к двум. терабайты по размеру[11] используется для онлайн-обработка транзакций.

Процессы базы данных

Для запуска TimesTen требуется запуск фонового процесса, называемого главным демоном TimesTen, который затем запускает несколько процессов поддомона TimesTen для управления каждой базой данных, созданной в системе. Эти процессы субдемона выполняют такие операции с базой данных, как:

  1. загрузка и выгрузка базы данных в оперативную память
  2. написание периодических нечетких контрольно-пропускные пункты базы данных TimesTen на диск
  3. запись журнала транзакций из буфера журнала в памяти в файлы журнала транзакций на диске
  4. обработка тупиковых ситуаций

Режимы подключения

Клиентские приложения, которые подключаются к традиционным дисковым реляционным базам данных, обычно используют TCP / IP или другой МПК механизм взаимодействия с процессом сервера базы данных. В TimesTen приложения, которые находятся на том же сервере, что и база данных TimesTen, могут напрямую подключаться к образу базы данных в памяти с помощью прямого драйвера TimesTen, устраняя необходимость в каком-либо межпроцессном взаимодействии любого типа, обеспечивая тем самым чрезвычайно быстрое спектакль.[12] Если приложение находится на удаленном сервере, оно также может подключаться к базе данных TimesTen, используя традиционный модель клиент / сервер доступа к данным.

Доступность и целостность

Файлы контрольных точек и транзакций

Все данные TimesTen находятся в ОЗУ, однако TimesTen использует энергонезависимое хранилище (например, жесткий диск) для сохранения базы данных и возможности восстановления. База данных TimesTen хранит все изменения данных транзакций в буфере журнала в памяти, который в конечном итоге сохраняется на диске в виде файлов журнала транзакций. Кроме того, TimesTen также сохраняет на диске моментальные снимки базы данных в памяти, называемые файлами контрольных точек. Комбинация файлов контрольных точек и файлов журнала транзакций позволяет TimesTen обеспечивать возможность восстановления в случае сбоя системы. TimesTen реализует параллельный менеджер журналов, чтобы максимизировать пропускную способность в больших SMP-системах.

По умолчанию TimesTen работает в режиме непродолжительной фиксации. В этом режиме операция фиксации выполняется исключительно в памяти, а запись записей журнала транзакции на диск происходит асинхронно с фиксацией.[13] Это обеспечивает очень низкое время отклика и очень высокую пропускную способность за счет возможной потери небольшого объема данных в случае сбоя системы. Также предоставляется настоящий синхронный режим фиксации (режим надежной фиксации); Этот режим позволяет избежать потери данных за счет снижения производительности. При работе в режиме синхронной фиксации TimesTen обеспечивает автоматическую оптимизацию групповой фиксации. TimesTen позволяет архитектору / разработчику сбалансировать производительность и безопасность данных, обеспечивая управление режимом фиксации на трех разных уровнях: база данных, соединение и транзакция. Другой вариант защиты данных и обеспечения высокой доступности - использование репликации TimesTen.[14]

Репликация

Механизм репликации TimesTen позволяет очень доступный система, отправляя обновления базы данных между двумя или более хостами. Благодаря репликации TimesTen владелец хост отправляет обновления одному или нескольким подписчик хосты. TimesTen рекомендует конфигурацию пары активный-резервный для обеспечения максимальной доступности.[15] Пара активный-резервный состоит из двух главных баз данных, активный и ожидать база данных. В дополнение к активной и резервной базам данных можно настроить несколько баз данных подписчиков для работы в качестве копий для аварийного восстановления или ферм только для чтения.

Репликация в TimesTen осуществляется агент репликации, процесс-демон, который нацелен на каждую базу данных TimesTen, участвующую в репликации. Агент репликации отправляет и получает обновления между базами данных, взаимодействуя с агентами репликации других баз данных, участвующих в той же схеме репликации. Регистрация изменений осуществляется с помощью анализа журналов с оптимизацией в памяти; при нормальных условиях эксплуатации записи об изменениях фиксируются из буфера журнала в памяти без необходимости какого-либо дискового ввода-вывода. Связь между агентами репликации осуществляется через эффективный потоковый протокол, построенный на основе обычных TCP / IP соединения.[16] Агент репликации является многопоточным, и в версии 11.2.2 TimesTen поддерживает параллельную репликацию для увеличения пропускной способности. Рабочая нагрузка репликации автоматически распараллеливается, чтобы максимизировать пропускную способность при сохранении корректности.[17]

Кэш базы данных в памяти

TimesTen предоставляет возможность кэшировать данные из База данных Oracle источник. При использовании таким образом TimesTen упоминается как Кэш базы данных Oracle In-Memory (IMDB Cache), вариант продукта Oracle Database.[18]

Чтобы использовать кэширование Oracle Database, нужно определить один или несколько объектов SQL, известных как группы кеша. А группа кеша представляет собой набор из одной или нескольких связанных таблиц базы данных и допускает подмножества своих строк и / или столбцов. Каждая таблица базы данных в группе кэша должна иметь определенный первичный ключ или уникальный индекс, объявленный для набора столбцов, не допускающих значения NULL, и должен быть связан в иерархии родитель-потомок через первичный ключ -иностранный ключ ограничения. SQL предикаты могут использоваться для управления тем, какие данные следует кэшировать.

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

Уведомление о событии

TimesTen предоставляет механизм уведомления о событиях через API журнала транзакций (XLA). XLA предоставляет функции, которые позволяют приложениям получать уведомления об изменениях данных, происходящих в таблицах TimesTen (а также DDL встречающиеся в базе данных TimesTen). XLA также можно использовать вместе с материализованные представления для упрощения процесса отслеживания изменений, внесенных в строки, охватывающие несколько таблиц. XLA работает, извлекая поток журнала транзакций TimesTen аналогично агенту репликации. Развертывания приложений базы данных, которые не включают базу данных Oracle, которая хочет использовать TimesTen в качестве базы данных кэша в памяти, могут использовать XLA для сбора обновлений и, с помощью настраиваемых код приложения, примените эти обновления к своей внутренней базе данных.

История

TimesTen была основана в HP лаборатории Мари-Анн Неймат,[19] Шерри Листгартен и Курт Шоенс под именем «Smallbase».[20] В HP Жан-Рене Бувье решил встроить Smallbase в HP OpenCall, которая впервые начала коммерческое использование продукта в 1995 году.[21]В 1996 году продукт был выделен в отдельный венчурный капитал финансируется стартап компания основанный в Маунтин-Вью, Калифорния под руководством генерального директора Джима Гроффа. Продукт стал популярным для телекоммуникационного оборудования, так как время отклика в миллисекунды или даже микросекунды были необходимы для таких приложений, как пакет переключение. В компании было 90 сотрудников, и она была прибыльной, когда была приобретена Корпорация Oracle в 2005 году.[22] После приобретения Неймат остался директором по развитию TimesTen в Oracle,[19] добавление в продукт многих функций базы данных Oracle, таких как поддержка PL / SQL и интеграция с Разработчик Oracle SQL и Oracle Enterprise Manager.

Рекомендации

  1. ^ «Приобретение Oracle TimesTen». Корпорация Oracle.
  2. ^ Ван, Вэнгуан (2001). «Управление хранилищем в РСУБД». CiteSeerX. CiteSeerX  10.1.1.138.6378. Цитировать журнал требует | журнал = (помощь)
  3. ^ «База данных Oracle TimesTen в памяти и кэш базы данных Oracle In-Memory». Корпорация Oracle.
  4. ^ Динсмор, Томас В. (2016). «5: InMemory Analytics». Подрывная аналитика: определение вашей стратегии для бизнес-аналитики следующего поколения. Апресс. п. 102. ISBN  9781484213117. Получено 2016-12-16. [...] Заказчики Oracle могут лицензировать Oracle Database In-Memory, столбчатое хранилище данных в памяти, тесно интегрированное с Oracle Database.
  5. ^ Ривенс, Энди; Колган, Мария; Марва, Винит (ноябрь 2016 г.). «Oracle Database In-Memory с Oracle Database 12c Release 2: Технический обзор». Белые бумаги. Редвуд-Шорс, Калифорния: Корпорация Oracle. п. 1. Oracle Database In-Memory включена в Oracle Database 12c Release 2 Enterprise Edition в Oracle Cloud. [...] Oracle Database In-Memory добавляет функциональность базы данных в памяти для прозрачного ускорения аналитических запросов [...]. Отсутствует или пусто | url = (помощь)
  6. ^ «Веб-сайт продукта Oracle In-Memory Database Cache». Корпорация Oracle.
  7. ^ «Поддерживаемые платформы TimesTen 11.2.2 (из FAQ по TimesTen)».
  8. ^ «Почему база данных Oracle TimesTen In-Memory работает быстро? (Документация TimesTen 11.2.2)». Корпорация Oracle. Архивировано из оригинал на 2012-10-20.
  9. ^ «Исключительная производительность с использованием базы данных Oracle TimesTen в памяти» (PDF). Корпорация Oracle.
  10. ^ «Общие библиотеки - архитектура кэша базы данных Oracle In-Memory и документация по компонентам». Архивировано из оригинал на 2013-06-12.
  11. ^ «Исключительная производительность с технологией баз данных в памяти - Истории из реальной жизни - USPS (представлен на Open World 2010)» (PDF). Корпорация Oracle.
  12. ^ «Обзор прямого подключения драйвера TimesTen». Корпорация Oracle. Архивировано из оригинал на 2013-06-12.
  13. ^ «Обзор репликации TimesTen (документация TimesTen 11.2.2)». Корпорация Oracle. Архивировано из оригинал на 2013-06-12.
  14. ^ «Обзор репликации TimesTen (документация TimesTen 11.2.2)». Корпорация Oracle. Архивировано из оригинал на 2013-06-12.
  15. ^ «Обзор репликации Oracle TimesTen 11.2.2». Корпорация Oracle. Архивировано из оригинал на 2013-06-12.
  16. ^ «Обзор конфигурации репликации TimesTen». База данных Oracle. Архивировано из оригинал на 2013-06-12.
  17. ^ "Обзор параллельной репликации TimesTen". База данных Oracle. Архивировано из оригинал на 2013-06-12.
  18. ^ «Обзор Oracle IMDB Cache (документация TimesTen 11.2.2)». Корпорация Oracle. Архивировано из оригинал на 2013-06-11.
  19. ^ а б "Победитель Fast 50 2004 - Мари-Анн Ниемат". Быстрая Компания. Декабрь 2003 г.
  20. ^ "Технология TimesTen для Epoch Well".
  21. ^ «HP выбирает базу данных реального времени TimesTen для своих интеллектуальных сетевых платформ HP OpenCall». Деловой провод.
  22. ^ «Oracle приобретает TimesTen для базы данных реального времени». Хранитель Unix. Архивировано из оригинал на 2012-01-26.

внешняя ссылка