oracle timesten (in-memory database cache) · 2009-04-16 · реального времени...
TRANSCRIPT
<Insert Picture Here>
Oracle TimesTen (In-Memory Database Cache)
Геннадий Сигалаев Oracle CIS
ADVANCED COMPRESSION
ACTIVE DATA GUARD
REAL APPLICATION TESTING
IN MEMORY DATABASE CACHE
ORACLE VM
TOTAL RECALL
SQL PLAN BASELINE
RESULT CACHE
SQL PERFOMANCE ANALYZER
PERFOMANCE
OPTIMIZER FEATURES
<Insert Picture Here>
План презентации
• Для чего необходим IMDBC?
• Архитектура
• Использование IMDBC
• Подключение
• Кэш группы• READ ONLY
• SYNCHRONOUS WRITETHROUGH (SWT)
• ASYNCHRONOUS WRITETHROUGH (AWT)
• USERMANAGED
• Возможности
• Демонстрации
Когда мы представляем “База данных…”
RDBMS + соединение по сети
Но это НЕ достаточно быстро для
Критичных к времени отклика приложений
Типичное решение: Сделать свой, специфичный для приложения, буферный
‘кэш’…..
SQLSQL
ResultsResultsRDBMSApplication
Что если ...
Disk- based
RDBMSApplication
• Со всеми возможностями реляционной СУБД
• Ориентированный на работу в оперативной памяти, быстрый
• Высоко доступный, восстанавливаемый
•• СоСо всемивсеми возможностямивозможностями реляционнойреляционной СУБДСУБД
•• ОриентированныйОриентированный нана работуработу вв оперативнойоперативной памятипамяти, , быстрыйбыстрый
•• ВысокоВысоко доступныйдоступный, , восстанавливаемыйвосстанавливаемый
SQL
Results
Кэш приложения и Базу Данных в Один продукт с
In-Memory Database Cache
Application Application
In-Memory Database Cache - это возможность использования СУБДреального времени Oracle TimesTen, как быстрый кэш над СУБДOracle Database
Почему TimesTen быстрее:Дисковая СУБД
Hash
Function
Linked
Lists Into
Buffers
Buffer Pool
Приложение
SQL
Копирование
записей в
Private Buffer
Data
Page
Предположим,
что страница уже
в памяти...
Пересылка
буфера в
приложение
(via IPC)
Table#Page#Query
Optimiser
/Executor
Определение адреса искомой страницы на диске
Вычисление указателя на
адрес страницы (Page Pointer) с
использованием хэширования
и линейного поиска
IPC
Почему TimesTen быстрее:TimesTen
Memory-Resident
Database
Приложение
SQL
Вся БД загружена с
диска в память до
начала работы
Memory AddressQuery
Optimiser /
Executor
Data Store
Вычисление прямого адреса в памяти для
искомой записи
Копирование
данных в буфера
приложения
Почему TimesTen быстрее?
• TimesTen нужно меньше CPU ресурсов, чем дисковой СУБД, чтобы выполнить ту же работу
• Используются физические адреса записей
• Не нужно преобразовывать логические адреса в физические
• Структуры данных, например индексы, оптимизированы для работы в RAM
Д е м о н с т р а ц и я
Использование
In-Memory Database Cache
10
CDRS
PK Id
Creation
Tel_no1
Tel_no2
Duration
CALLS
PK Id
Creation
Account1_id
Account2_id
Duration
Amount
Tel_Part_No
ACCOUNTS
PK,FK1,FK2 Id
Creation
Plan_id
Amount
Tel_Part_No
PLANS
FK1 IdCreation
Account1_id
Duration
Amount
Tel_Part_No
Схема данных системы “DBOD Billing”
CDRs txt-files
11
Таблица “сырых” звонков (CDR)
12
Таблица счетов (accounts)
13
Таблица просчитанных звонков (calls)
Oracle VM 2.1.1
Используемое окружение
DBOD Billing in Oracle Database
OEL 5U2OEL 5U2
“”DBOD Billing”
Oracle Client 11gJDBC OCI Driver
Oracle*NET
D E M O N S T R A T I O N
“DBOD Billing” in
Oracle Database
Oracle VM 2.1.1
Используемое окружение
DBOD Billing in Oracle TimesTen
OEL 5U2
Oracle*NET
OEL 5U2
“DBOD Billing”
Создание кэш-групп в TimesTenДля сырых звонков (таблица CDRS)
call ttCacheUidPwdSet(‘cacheadmin',‘cacheadmin');
create asynchronous writethrough cache group cdrs_cg
from cdrs (id number(22) not null,
creation date,
tel_no1 integer,
tel_no2 integer,
duration integer,
Primary key (id) );
commit;
Создание кэш-групп в TimesTenДля обработанных звонков (таблица CALLS)
create asynchronous writethrough cache group calls_cg
from calls (id number(22) not null,
creation date,
account1_id integer,
account2_id integer,
duration number,
amount binary_double,
Primary key (id));
commit;
Создание кэш-групп в TimesTenДля счетов и тарифов: таблицы ACCOUNTS, PLANS
create asynchronous writethrough cache group data_cg from
plans (id number(12) not null,
pricepermin binary_double,
name varchar2(32),
Primary key (id))
unique Hash on (id) pages=1,
accounts (id number(12) not null,
tel_no number(10,0),
plan_id number(12),
amount binary_double,
Primary key (id),
FOREIGN KEY (plan_id) REFERENCES plans(id))
unique Hash on (id) pages=3900;
D E M O N S T R A T I O N
“DBOD Billing” in
Oracle TimesTen
Архитектура
Архитектура Oracle TimesTen
Checkpoint files (.dsN)
Network
Client/Server applications
Direct-linked application
TimesTen shared libraries
Applicationbusiness logic
TimesTen Client lib
Application
Transaction Logs files (.logN)
In-Memory
Database
• Shared libraries
• Memory-resident data
structures
• Database processes
• Administrative programs
• Checkpoint and log files
TimesTen shared libraries
Applicationbusiness logic
Database processes
Administrative programs
Handle client/server requests
Reserve space files(.resN)
Использование
Использование IMDBC
• Oracle Database• Пользователь tttest – владелец объектов
• Пользователь cacheadmin – администратор кэша
• Oracle TimesTen• Пользователь tttest – должен совпадать с именем пользователя - владельца объектов в Oracle Database.
(Пароль может отличаться)
• Создать ODBC DSN в sys.odbc.ini
CREATE USER tttest IDENTIFIED BY 'tttest‘;
GRANT DDL,ADMIN TO tttest;
ODBC DSN
[dstest]
Driver=/app/oracle/product/7.0.5/tt/TimesTen/tt70/lib/libtten.so
DataStore=/app/oracle/ttdata/dstest
DatabaseCharacterSet=AL32UTF8
PermSize=256
TempSize=50
UID=tttest
OracleID=orcl
OraclePWD=tttest
TimesTen Data Store
• Две части в TimesTen Data Store• Permanent partition (PermSize)
• Сохраняемая секция содержит сохраняемые элементы данных
• Только permanent partition записывается на диск во время checkpoint
• Temporary partition (TempSize)
• Временная секция содержит временные данные, генерируемые во время выполнения операций
• TimesTen Data Store size = PermSize + TempSize
• У вашей системы должно быть достаточно RAM, чтобы содержать всю базу данных (dssize, ttSize)
• Размер разделяемого сегмента
• PermSize + TempSize + LogBuffSize+7mb overhead
Database Size Limits by
Platform for TimesTen 7.0
Platform
Max
size of
a single
databas
e
Max Size of All
database on a single system
Notes
HP-UX (32-bit) 1GB Approx. 1.75GB
In HP-UX, 32 bit applications can use databases which are taken from two different areas of virtual memory - a 1GB area as well as a 750MB area. Each area can contain one or more databases, but a database must completely fit within a single area. All applications share the same shared memory areas.
AIX (32-bit) /
Linux (x86)Solaris (32-bit)
2GBLimited by system configuration
On Solaris, settings in /etc/system determine system maximums
Windows (32-bit)
Variable
(675MB-
1.5GB)
Variable
Database size limits on Microsoft Windows vary depending on OS facilities that the application uses. Simple applications have been seen to allow 907MB databases, while complex, web-based, applications have been seen to allow as little as 675MB for TimesTen database size. The reason for this has to do with how DLLs are loaded into memory. Manufacturers of DLLs can choose where they reside within memory. They tend to be spread out across available memory and thus segment remaining memory that might otherwise be used byTimesTen databases. Since TimesTen requires a single contiguous block of shared memory, finding a single large block within Windows’s address space is dependent on the number and placement of DLLs within the address space.
HP-UX / AIX /
Linux
Solaris /
Windows (64-
bit)
Very Large
Limited by system configuration
Database size on 64 bit platforms is limited by the amount of physical memory available and practical limits.On Solaris, settings in /etc/system determine system maximums. On HP-UX, The issues described above under 32-bit HP-UX do not apply to 64-bit processes.
Хранение данных (INLINE)
• Постоянной длины (date, number и др.)
Command> desc readtab;
Table TTTEST.READTAB:
Columns:
*A NUMBER NOT NULL
B VARCHAR2 (100) INLINE
1 table found.
(primary key columns are indicated with *)
Хранение данных (OUT OF LINE )
• Переменной длинны (varchar2 и др.)
Command> desc test_size;
Table TTTEST.TEST_SIZE:
Columns:
*ID NUMBER NOT NULL
NAME_1 VARCHAR2 (200) NOT INLINE
NAME_2 VARCHAR2 (200) NOT INLINE
NAME_3 VARCHAR2 (500) NOT INLINE
1 table found.
(primary key columns are indicated with *)
Подключение
Подключение к IMDB Cache
Два вида подключения:
• Direct connection
• Client/server connection
Интерфейсы:
• JDBC
• ODBC
TimesTen Libraries
Application
TimesTen Libraries
Application
Checkpoint files
Network
Client-Server
Direct-linked
TimesTen Libraries
Application
TimesTen Client lib
Application
Transaction Logs
In-Memory
Database
Direct connection
TimesTen Libraries
Application
Data store
TimesTen
deamon
TimesTen
subdeamon
Direct connection – приложение и data store находяться в одном сегменте разделяемой памяти
Checkpoint files Transaction Logs files
“deadman” socket connection
Подключение
• Командный интерпретатор ttisql
[oracle@localhost ~]$ ttisql
Copyright (c) 1996-2008, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.
Command> connect dstest;
Connection successful:
DSN=dstest;UID=tttest;DataStore=/app/oracle/ttdata/dstest;DatabaseCharacterSet=AL32UTF8;
ConnectionCharacterSet=US7ASCII;DRIVER=/app/oracle/product/7.0.5/tt/TimesTen/tt70/lib/
libtten.so;OracleId=orcl;PermSize=256;TempSize=50;TypeMode=0;
(Default setting AutoCommit=1)
Command>
Подключение[oracle@[oracle@[oracle@[oracle@localhostlocalhostlocalhostlocalhost ~]$~]$~]$~]$ ttstatusttstatusttstatusttstatusTimesTenTimesTenTimesTenTimesTen status report as of Wed Oct 15 04:40:54 2008status report as of Wed Oct 15 04:40:54 2008status report as of Wed Oct 15 04:40:54 2008status report as of Wed Oct 15 04:40:54 2008
DaemonDaemonDaemonDaemon pidpidpidpid 6075 port 17000 instance tt706075 port 17000 instance tt706075 port 17000 instance tt706075 port 17000 instance tt70TimesTenTimesTenTimesTenTimesTen serverserverserverserver pidpidpidpid 6084 started on port 170026084 started on port 170026084 started on port 170026084 started on port 17002TimesTen webserver pidTimesTen webserver pidTimesTen webserver pidTimesTen webserver pid 6082 started on port 170046082 started on port 170046082 started on port 170046082 started on port 17004
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Data store /app/oracle/ttdata/dstestData store /app/oracle/ttdata/dstestData store /app/oracle/ttdata/dstestData store /app/oracle/ttdata/dstestThere are 7 connections to the data storeThere are 7 connections to the data storeThere are 7 connections to the data storeThere are 7 connections to the data storeData store is in shared modeData store is in shared modeData store is in shared modeData store is in shared modeShared Memory KEY 0x0200fde0 ID 32769Shared Memory KEY 0x0200fde0 ID 32769Shared Memory KEY 0x0200fde0 ID 32769Shared Memory KEY 0x0200fde0 ID 32769Type PID Context Connection Name Type PID Context Connection Name Type PID Context Connection Name Type PID Context Connection Name ConnIDConnIDConnIDConnIDProcess 3026 0x099dbff0 dstest Process 3026 0x099dbff0 dstest Process 3026 0x099dbff0 dstest Process 3026 0x099dbff0 dstest 1111Subdaemon 2283 0x0a064770 Worker 20Subdaemon 2283 0x0a064770 Worker 20Subdaemon 2283 0x0a064770 Worker 20Subdaemon 2283 0x0a064770 Worker 2042424242Subdaemon 2283 0x0a106ea0 Flusher 2Subdaemon 2283 0x0a106ea0 Flusher 2Subdaemon 2283 0x0a106ea0 Flusher 2Subdaemon 2283 0x0a106ea0 Flusher 2043043043043Subdaemon 2283 0x0a1562a8 Aging Subdaemon 2283 0x0a1562a8 Aging Subdaemon 2283 0x0a1562a8 Aging Subdaemon 2283 0x0a1562a8 Aging 2046204620462046Subdaemon 2283 0x0a165480 Monitor 2Subdaemon 2283 0x0a165480 Monitor 2Subdaemon 2283 0x0a165480 Monitor 2Subdaemon 2283 0x0a165480 Monitor 2044044044044Subdaemon 2283 0x0a174658 HistGC 20Subdaemon 2283 0x0a174658 HistGC 20Subdaemon 2283 0x0a174658 HistGC 20Subdaemon 2283 0x0a174658 HistGC 2045454545Subdaemon 2283 0x0a203c90 Checkpoint 2047Subdaemon 2283 0x0a203c90 Checkpoint 2047Subdaemon 2283 0x0a203c90 Checkpoint 2047Subdaemon 2283 0x0a203c90 Checkpoint 2047Replication policy : ManualReplication policy : ManualReplication policy : ManualReplication policy : ManualCache agent policy : ManualCache agent policy : ManualCache agent policy : ManualCache agent policy : Manual------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Access control enabled.Access control enabled.Access control enabled.Access control enabled.End of report
Назначение каждого изНазначение каждого изНазначение каждого изНазначение каждого изподдемонов поддемонов поддемонов поддемонов DOC_ID 759437.1DOC_ID 759437.1DOC_ID 759437.1DOC_ID 759437.1
Кэш группы
In-Memory Database Cache
• Кешируются таблицы из Oracle Database
• Пользователь конфигурируетcache groups
• Кеширование индивидуальных таблиц и зависимых таблиц
• Кеширование всех или подмножества строк и колонок
• Только чтение или изменение
• Автоматическая синхронизация данных• Из TimesTen в Oracle
• Из Oracle в TimesTen
Checkpoints
Tx Logs
Network
Client-Server
Cache Tables
CacheAgent
Direct-linked
ApplicationApplication
TimesTen Libraries
TimesTen Client lib
Application
Кеширование данных из Oracle Database
Cache Group – структура данных из Oracle Database, которые должны быть закешированы в TimesTen In-Memory Database
Типы Cache group
• READ ONLY
• SYNCHRONOUS WRITETHROUGH (SWT)
• ASYNCHRONOUS WRITETHROUGH (AWT)
• USERMANAGED
Read Only Cache Group
• Read-only Cache Groups
• Изменения запрещены вcache group
• Возможность использованияPassThrough для изменений в Oracle DB
• Изменения в Oracle DB автоматически обновляются в cache group
• Высокая доступность инадежность
Propagateчерез
PassThrough
RefreshAutorefreshпо запросу
Application
Транзитная передача операторов из
TimesTen в Oracle
• Транзитная передача SQL делается прозрачно для приложений через соединение с Oracle DB
• SQL предложения, которые не могут быть выполнены вTimesTen перенаправляются вOracle DB
• TimesTen управляет соединением с Oracle DB
Oracle DBOracle DBOracle DB
Cache group
TimesTen
Passthrough logic
Statements that
cannot be handled
in TimesTen are
passed through
to Oracle
Statements that
can be handled
in TimesTen
Application
Д е м о н с т р а ц и я
Использование
Read Only Кэш группы
SWT Cache Group
• Транзакции выполняются вкэше
• Изменения в cache group фиксируются синхронно с Oracle DB
Propagateавтоматически
Загрузка один раз
при создании группы
Application
SWT Cache Group Data Flow
Application (0) DML
(1) COMMIT
TimesTen(2) Propagate transaction to Oracle
(DML, COMMIT)
Oracle(3) Commit transaction and
return to TimesTen
TimesTen(4) Commit to transaction log(5) Return control to application
ttCachePropagateFlagSet
2
3
4
TimesTen
transaction
log
Oracle DBOracle DBOracle DB
SYNCHRONOUS
WRITETHROUGH
TimesTen
Application 51
SWT Cache Group
Propagateавтоматически
Загрузка один раз
при создании группы
Пример:
CREATE SYNCHRONOUS
WRITETHROUGH CACHE
GROUP readcache
FROM readtab (
a NUMBER NOT NULL
PRIMARY KEY,
b VARCHAR2(100) );
Application
AWT Cache Group
• Транзакции выполняются в кэше
• Изменения в cache group фиксируются асинхронно с Oracle DB
• Обеспечивает наилучшую производительность
Propagateавтоматически
Application
AWT Cache Group Data Flow
Application(0) DML
(1) COMMIT
TimesTen(2) Commit to transaction log(3) Return control to application(4) Propagate transaction to Oracle
(DML, COMMIT)
Oracle(5) Commit transaction and
return to TimesTen
4
5
2
TimesTen
transaction
log
Oracle DBOracle DBOracle DB
ASYNCHRONOUS
WRITETHROUGH
TimesTen
Application 31
Прозрачная загрузка при SELECT
• Прозрачная загрузка при SELECT грузит данные из таблиц Oracle в соответствующие TimesTen кэш таблицы, если SELECT не нашёл данных в кэштаблицах
• Прозрачную загрузку при SELECT включает:• TransparentLoad DSN атрибут
• ttIsql set transparentload команда
• Запрос не может использовать множественные операции UNION, INTERSECT, MINUS
Прозрачная загрузка при SELECT
• Виды SELECT
•SELECT * FROM table1 WHERE primkey=1;
•SELECT * FROM table2 WHERE pkcol1=10 AND
pkcol2=10;
•SELECT * FROM table2 WHERE foreignkey=1;
•SELECT * FROM table2 WHERE fkcol1=10 AND
fkcol2=10;
•SELECT * FROM table1,table2 where
table1.primkey=1 and
table2.foreignkey=table1.primkey;
Автоматическая очистка данных
• Очистка данных – операция по удалению данных, которые больше не нужны
• Удаление старых данных на основе времени
• Удаление данных, которые не использовались какое-то время
• Поддерживаются два типа очистки данных
• Time-based – основанный на timestamp значениях
• Usage-based – основанный на LRU алгоритме
• Политика очистки данных устанавливается пользователем
• на уровне таблиц или кэш групп
• Даёт возможность приложению держать в кэше только самые свежие данные
• Соответствие нормативам
• Скользящее окно кэширования данных
• Контроль размера базы данных
Автоматическая очистка данных
• LRU aging может быть использован со всеми типами кэш групп кроме кэш групп с атрибутом AUTOREFRESH
• Таблицы связанные ограничением ссылочной целостности должны иметь одинаковые политики очистки
• Если используется LRU aging и строка в дочерней таблице недавно использовалась, то не родительская строка, не дочерняя строка не будут удалены
• Если используется time-based aging и строка в родительскойтаблице кандидат для очистки, тогда родительская строка и все еенаследники будут удалены
Automatic Data Aging Примеры
CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP LocalJobs FROM
hr.jobs (job_id VARCHAR2(10) NOT NULL,
job_title VARCHAR2(35) NOT NULL,
min_salary NUMBER(6),
max_salary NUMBER(6),
PRIMARY KEY (job_id))
AGING LRU
CALL ttAgingLRUConfig(.75, .95, 15)
CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP NewEmployees FROM
hr.employees (employee_id NUMBER(6) NOT NULL,
first_name VARCHAR2(20),
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25) NOT NULL,
hire_date TIMESTAMP NOT NULL DEFAULT SYSDATE,
job_id VARCHAR2(10) NOT NULL,
PRIMARY KEY (employee_id))AGING USE hire_date LIFETIME 365 DAYS CYCLE 24 HOURS ON
Automatic Data Aging Примеры
CREATE READONLY CACHE GROUP cg1
AUTOREFRESH STATE ON INTERVAL 1 MINUTES
FROM t1(i NUMBER NOT NULL PRIMARY KEY,
ts TIMESTAMP NOT NULL,
c VARCHAR2(50))
AGING USE ts LIFETIME 3 HOURS
CYCLE 10 MINUTES;
Sliding Window:
Д е м о н с т р а ц и я
Использование
AWT Кэш групп
Usermanaged Cache Group
• Возможность создавать группы с нестандартным поведением
• Возможность использования FLUSH, REFRESH, UNLOAD
Загрузка по
требованию
Propagateпо
требованию
Application
Usermanaged Cache Group
Загрузка по
требованию
Propagateавтоматически
Пример:
CREATE USERMANAGED CACHE GROUP ucache
AUTOREFRESH
INTERVAL 30 SECONDS
FROM readtab (
a NUMBER NOT NULL
PRIMARY KEY,
b VARCHAR2(100) ,
PROPAGATE);
Application
Дополнительная информация
DOC_ID 473493.1
Возможности
Возможности IMDB Cache
• ODBC и JDBC интерфейсы
• Поддержка SQL
• Access Control
• Журнализация изменений
• Многопользовательский конкурентный доступ
• Автоматическая очистка данных
• Наблюдение за журналом транзакций
• Replication – TimesTen to Timesten
• Web интерфейс Cache Administrator
Поддержка SQL
• Поддерживает широкий диапазон SQL – 92 (SELECT, UPDATE, DELETE, INSERT, MERGE)
• Стандартные типы данных (числовые, строковые, дата, и т.д.)
• Поддержка большого набора SQL функций (DECODE, MOD, CASE и т.д.)
• Существуют ограничения (LOB, XML)
Надежность
• Все транзакции сохраняются в in-memory log buffer а затем записываются на диск• Асинхронный commit
• Синхронный (надежный) commit
• Автоматические контрольные точки
• TimesTen использует 2 файла контрольной точки для каждого data store
• После перезапуска системы, данные могут быть загружены в память из файлов контрольных точек и файлов транзакций
Оптимизация запросов
• Hash Indexes
• Сверх-быстрый поиск точных значений и эквисоединений
• Не больше одного индекса на таблицу
• T-Tree Indexes
• Memory-optimized index technology
• Создаются командой SQL “CREATE INDEX”
• Быстрый поиск точного значения и диапазона значений
• Создаются по умолчанию при создании первичного ключа
• Cost-Based Optimizer
• Планы и хинты
Утилиты
• ttBulkCp
• ttBackup
• ttDestroy
• ttRestore
• ttisql
• ttDaemonAdmin
• ttAdmin
• и др.
• Полная поддержка транзакций(COMMIT/ROLLBACK)
• Блокировка на уровне записи
• Версионность
• Записи не блокируют чтения
• Чтения не блокируют записи
Конкурентный доступ
Transaction Log Monitoring (XLA)
• Отслеживает изменения в таблицах и материализованных представлениях
• Поддержка нескольких, одновременных XLA приложений, работающих с одним data store
• Maintain log positions via Bookmarks
• Поддержка для C++ в TTClasses
Пример XLA приложений
• Trigger-like функциональность• Любой INSERT, UPDATE, DELETE в базе данных может
мониториться
• Для Update отображается новое и старое значение
• 1000-чи транзакций в секунду – намного быстрее чем триггеры
• Репликационные агенты• Реплицировать данные в реляционные и нереляционные
базы данных
• Обработка событий• Когда цена акции ORCL вырастет на $1.00 оповестить
другие приложения
• Когда добавлен новый подписчик, оповестить биллинговую и другие системы
Высокая доступностьReplication – TimesTen to TimesTen
• Репликация данных в реальном времени
• Между базами данных TimesTen
• Гибкая конфигурация
• Master-standby, Master-master, N-way
• Высокая производительность
• Асинхронная репликация
• Синхронная репликация
• Надежная
Network
InIn--Memory Memory
DatabaseDatabase
TimesTen Libraries
Application
TimesTen Libraries
Application
TimesTen Libraries
Application
ReplicationTimesTen to TimesTen
InIn--Memory Memory
DatabaseDatabase
TimesTen Libraries
Application
TimesTen Libraries
Application
TimesTen Libraries
Application
Replication – TimesTen to TimesTen
• Базы данных целиком или отдельных таблиц (кэш группы)
• Конфигурируется используя SQL
• Асинхронная или синхронная (задается динамически в SQL)
• Автоматическое восстановление
• Не надо менять код приложения
Master - Standby
N – Way
Propagation
Master - Master
Высокая доступностьИнтеграция с Oracle Database RAC
• Автоматическое восстановление в случае падения узла используяTAF, FAN
• Автоматическое переключение на другой узел
• Автоматическая синхронизация изменение из Oracle Database вTimesTen и обратно
• Нет потерь транзакций
In-Memory Database Cache
с active-standby pair
репликацией для высокой
доступности на уровне
приложения
Real Application Clusters
для масштабируемости и
высокой доступности на
уровне БД
In-Memory Database Cache
Пример конфигурации HA
App 1 App 2 App 3
In the EnterpriseIn Telecom On Wall StreetIn Networks
• 1500+ предприятий используют TimesTen
• 7 из 9 ведущих поставщиков сетевого оборудования используют TimesTenв своих продуктах
• Самые популярные биллинговые системы в мире используют TimesTen
• 4 из 5 основных операторов беспроводной связи в Европе используют TimesTen
• Самые большие в мире CALL CENTERS работают на TimesTen
Системы реального времениТысячи компаний используют Oracle TimesTen
Причины для выбораIn-Memory Database Cache
• Ограниченное время отклика• Микросекунды вместо миллисекунд
• Высокая производительность
• Высокая пропускная способность
• Высокая доступность и восстанавливаемость
• Стандартная реляционная модель, поддержка SQL• Не нужно переписывать бизнес логику или интерфейс
• Кэширование таблиц Oracle Database c автоматической синхронизаций данных
Дополнительная Информация
Oracle In-Memory Database Cache на OTN:
http://oracle.com/technology/products/timesten/imdb_cache
• Технические статьи
• Руководства по использованию и установке
• Форум
ОТВЕТЫ
ВОПРОСЫ
<Insert Picture Here>
Геннадий Сигалаев Старший консультант, Oracle СНГ
Email : [email protected] Phone : +7 (495) 641 14 00Direct: +7 (495) 795 22 28Mobile: +7 (985) 169 75 66