Слайд 2Что такое TimesTen
РСУБД, работающая полностью в памяти.
Закрытый исходный код, коммерческая
лицензия
Поддерживает SQL в версии 7.05 и PL/SQL в версии 11g
Cost-based optimizer
JDBC, ODBC в версии 7.05 и OCI в версии 11g
Интеграция с Oracle database
Устанавливается на Unix/Linux/Windows
Слайд 3Наша нагрузка (на один инстанс)
Около 150 таблиц
Около 150 млн строк в этих
таблицах
1000 подключенных сессий
23Гб загруженных в память данных
Commit rate ~ 3000
Слайд 4Управление запуском
Размер datastore
Фиксирован
Может только увеличиваться
Формула: Размер = Сколько есть – OS –
2 мб * max_session_amount – temp_size
Swapinness в 0
hugepage включить
Слайд 5Уровни изоляции транзакции
Read commited
Читатели не блокируют писателей
Писатели не блокируют читателей
Хранится две версии
модифицируемой записи: текущая и новая
select sum(value) from tab может вернуть неожиданный результат
Serializable
Читатели блокируют писателей
Писатели блокируют читателей
Читатели не блокируют читателей
Слайд 6Способы online агрегации данных
Materialized view – не для репликации
Все mview в TimesTen
– обновляются сразу!
Materialized views могут быть вложенные
TimesTen ~ 300 tps, Oracle database ~ 3 tps
Слайд 7Механизмы интеграции Oracle database и TimesTen
Read-only cachegroup
Usermanaged cache group
Synchronous cache group
Asynchronous cache group
Aging feature
Passthrough feature
DB link Oracle -> TimesTen
Слайд 8Организация хранения и индексирования данных
In-line и out-of-line данные
Добавление столбца = зло
Два типа
индексов: t-tree и хэш (хэш быстрее, но он только для pk)
Статистика для CBO: количество уникальных значений и гистограммы
Типы данных TT меньше Oracle
Нет поддержки timestamp with local timezone
Слайд 9Тёмная сторона
Datastore corruption за select
Disconnect при сложных запросах
Нет инструментов анализа производительности
Хинты не удобные
Особенности управления изменениями (блокировка sys.tables)
Нет аналитических запросов
Из инструментов работы с базой: ttISQL и плагин к SQL Developer
Максимум 24 таблицы в одном запросе
Слайд 10Наши проекты
Оптимизация отклика системы
Противодействие мошенническим схемам
Сбор данных с терминалов