oracle timesten
DESCRIPTION
TRANSCRIPT
Oracle TimesTen – СУБД которая в 10 раз быстрее
классических СУБДГеннадий Сигалаев/Игорь Мельников
Oracle СНГ
Архитектура Oracle TimesTen
Checkpoint files
Network
Client/Server applications
Direct-linked application
TimesTen shared libraries
Applicationbusiness logic
TimesTen
Client lib
Application
Transaction Logs files
In-Memory Database
• Shared libraries
• Memory-resident data structures
• Database processes
• Administrative programs
• Checkpoint and log filesTimesTen shared libraries
Applicationbusiness logic
Database processes
Administrative programs
Handle client/server requests
Дисковая СУБД
Hash Function
Linked Lists Into Buffers
Buffer Pool
Приложение
SQL
Копирование записей в Private Buffer
Data Page
Предположим, что страница уже в памяти...
Пересылка буфера в приложение (via IPC)
Table#Page#QueryOptimiser /Executor
Вычисление указателя на адрес страницы (Page Pointer)
с использованием хэширования и линейного
поиска
IPC Определение адреса искомой страницы на диске
Oracle TimesTen
Memory-Resident Database
Приложение
SQL
Вся БД загружена с диска в память до начала работы
Memory AddressQuery Optimiser / Executor
Data Store
Вычисление прямого
адреса в памяти
для искомой записи
Копирование данных в буфера приложения
Архитектура
Application Application
Почему TimesTen быстрее?
• TimesTen нужно меньше CPU ресурсов, чем дисковой СУБД, чтобы выполнить ту же работу;• Используются физические адреса записей;
• Не нужно преобразовывать логические адреса в физические;• Структуры данных, например индексы, оптимизированы для работы в RAM
Возможности Oracle TimesTen• ODBC и JDBC интерфейсы
• Поддержка SQL
• Access Control
• Database Cache
• Журнализация изменений
• Многопользовательский конкурентный доступ
• Автоматическая очистка данных
• Globalization support• Наблюдение за журналом
транзакций• Replication – TimesTen to
Timesten• Cache Administrator
Подключение Два вида подключения:
– Direct connection
– Client/server connection
Интерфейсы:
– JDBC
– ODBC
TimesTen Libraries
Application
TimesTen Libraries
Application
Checkpoint files
Network
Client-Server
Direct-linked
TimesTen Libraries
ApplicationTimesTen Client lib
Application
Transaction Logs
In-Memory Database
Поддержка SQL• Поддерживает широкий диапазон SQL – 92 (DML, DDL,
DCL, операторы управление транзакциями, индексы, материализованные представления ) + расширенные возможности (операторы репликации и т.д.)
• Стандартные типы данных (числовые, строковые, дата и т.д.)
• Поддержка большого набора SQL функций (decode, mod, case и т.д.)
• Не поддерживает LOB, collections, records, objects.
Оптимизация запросовHash Indexes
Сверх-быстрый поиск точных значений и эквисоединенийНе больше одного индекса на таблицу
T-Tree IndexesMemory-optimized index technologyСоздаются командой SQL “CREATE INDEX” Быстрый поиск точного значения и диапазона значенийСоздаются по умолчанию при создании первичного ключа
Cost-Based OptimizerПланы и хинты
Конкурентный доступПолная поддержка транзакций (COMMIT/ROLLBACK)Блокировка на уровне записиВерсионностьЗаписи не блокируют чтенияЧтения не блокируют записиTimesTen поддерживает распределенные транзакции через XA и JTA интерфейсы
Автоматическая очистка данныхАвтоматическая очистка данных – это операция удаления данных, которые больше не нужныДва типа очистки
Time-based aging – основана на timestamp значенияхUsage-based aging – основана на LRU алгоритме
Пользователь конфигурирует политику очистки Устанавливает политику на выбранные таблицы или cache groups
Приложение использует только наиболее часто используемые данныеКонтроль размера БД
Надежность• Все транзакции сохраняются в in-memory log buffer а затем
записываются на диск– Асинхронный commit– Синхронный (надежный) commit
• Автоматические контрольные точки– TimesTen использует 2 файла контрольной точки для
каждого data store• После перезапуска системы, данные могут быть загружены в
память из файлов контрольных точек и файлов транзакций
Database Cache• Кешируются таблицы из Oracle Database
• Пользователь конфигурирует cache groups
– Кеширование индивидуальных таблиц и зависимых таблиц
– Кеширование всех или подмножества строк и колонок
• Только чтение или изменение
• Автоматическая синхронизация данных– Из TimesTen в Oracle– Из Oracle в TimesTen
Checkpoints
Tx Logs
Network
Client-Server
Cache Tables
CacheAgent
Direct-linked
ApplicationApplicationTimesTen Libraries
TimesTen Client lib
Application
РепликацияNetwork
In-Memory In-Memory DatabaseDatabase
TimesTen Libraries
Application
TimesTen Libraries
Application
TimesTen Libraries
Application
ReplicationTimesTen to TimesTen
In-Memory In-Memory DatabaseDatabase
TimesTen Libraries
Application
TimesTen Libraries
Application
TimesTen Libraries
Application
Репликация данных в реальном времениМежду базами данных TimesTen
Гибкая конфигурация Master-standby, Master-master, N-way
Высокая производительностьАсинхронная репликацияСинхронная репликация
Надежная
ДостоинстваПредсказуемое и ограниченное время отклика
Микросекунды вместо миллисекундВысокая производительностьВысокая пропускная способность (~ 100000 TPS)
Высокая доступность и восстанавливаемость Стандартная реляционная модель, поддержка SQL
Не нужно переписывать бизнес логику или интерфейсКэширование таблиц Oracle Database c автоматической синхронизаций данных
Демонстрация