3. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
4. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
5. Oracle Coherence: лидер рынка и пионер отрасли
2000-2006 2008-2012 2013-2014 2015+
2000
Tangosol
Founded
Coherence
3.5 – 3.7
Broadening
popularity,
integration
across
FMW
2013 12cR1
12.1.2
Strategic
part of CAF
HotCache,
Managed
Servers
2014
Coherence
launched
as part of
JCS
2011 3.7.1
Exalogic
Integration
2014 12.1.3
JSR-107
ratified, led by
Oracle +
Coherence
2015 12cR2
MAA
Multitenancy
JDK8
2007
Acquired
by Oracle
2001
Coherence
1.0
6. Coherence In Memory Data Grid
Зачем это нужно
Производительность
приложений
Приложения Приложения
Прямой доступ из оперативной памяти –
информация более близка к приложениям
Масштабируемость приложений
Уменьшение нагрузки на базы за счет кэширования в памяти
Надежность работы приложений
За счет надежного распределенного кэша
Coherence
In Memory
Data Grid
7. Новая архитектура работы приложений
Social, Mobile, «Internet of Things»
In-Memory
Data Grid
Больше данных из
разных источников
Пользователи и
приложения
работают в
реальном времени
Coherence:
Распределенный кэш
и обработка в памяти
8. Coherence – первое решение по объединенному
распределенному кэшу в памяти
Первое поколение решений
по кэшированию
Приложение Приложение
Независимый
кэш
Независимый
кэш
Сложное масштабирование
Сложно поддерживать свежие данные
в памяти
Большие требования к памяти
Современная наилучшая практика
работы с данными в памяти
Приложение Приложение
Слой приложений
Слой приложений
Кластеризованный кэш в памяти
(Clustered Cache Data Grid)
Coherence Coherence Coherence Coherence
Слой данных в памяти (Data Grid)
Легкое масштабирование – горизонтально и
вертикально
Легкость обновления данных – один кэш
для обновления
Сильное увеличение производительности за
счет параллельных вычислений
9. Серверы приложений с Coherence
Производительность при использовании уровня данных в памяти
(Data Grid)
Кластер серверов приложений
WLS
Coherence
In Memory Data Grid
Сервер приложений
WLS
Coherence
Coherence
Coherence
Coherence
Coherence
Coherence
Coherence
Сервер WebLogic Server + Coherence
10. Примеры использования технологии
Кому это нужно
Кэширование
o Клиентские приложения запрашивают и работают с
данными в памяти, а не на серверах хранения
Аналитика
o Клиентские приложения запрашивают данные из памяти
(есть язык CohQL похожий на SQL) и моделируют в памяти
Вычисления
o Приложения производят вычисления (бизнес-логику и
транзакции) в распределенной памяти
События
o Приложения производят действия основываясь на
событиях в распределенной памяти
11. Oracle Coherence
Основные свойства и преимущества
Технология data fabric/grid для управления данными в распределенной
сети без точки отказа (все узлы равноправны – без single points of failure)
Единое представление данных на всех узлах
Данные и индексы «поднимаются» в оперативную память с
автоматическими транзакциями изменений в базу данных (с
пониманием flash disks, SSD и обычных дисков)
Динамическое распределение данных по узлам и автоматическая
балансировка нагрузки
При потере одного узла остальные перераспределяют его нагрузку
Поддержка различных запросов, которые параллельно обрабатываются
узлами
Линейное масштабирование системы (внедрения до тысяч узлов)
Расширенная безопасность (авторизация, использование identity token)
12. Coherence Clustered Caching
Распределенный, устойчивый к сбоям, самоподдерживающийся
Кластер узлов с данными (локальные и архивные)
Данные узлов архивированы на другие узлы
Любой узел знает обо всех данных во всех узлах
Все узлы проверяют жизнеспособность других
Если один из узлов «умирает», остальные узлы узнают о его состоянии
«Умерший» узел изолируется из кластера
Остальные узлы перераспределяют данные (основные и архивные)
и принимают на себя работу этого узла
?
13. Data
Virtual Load Balancing
In-Memory Data Grid
Распределенный кэш
Безграничные возможности работы с данными
и вычислениям в памяти
Загруженные данные распределяются в
памяти
Объем данных и скорость обработки
масштабируются линейно
Система с распределенной ответственностью
Скорость доступа и задержки (latency)
постоянны
Наилучшее решение для большого объема
часто изменяемых данных
Applications
Process Process Process Process
Coherence Cluster
14. Отказоустойчивость
Автоматическое управление целостностью
Бэкапы хранятся на разных машинах
Настраиваемое количество копий объектов
Делегирование функции бэкапирование
определенным узлам
Единый процесс управления доступностью
объектов
Applications
Data
Virtual Load Balancing
Fault Tolerance Management
Process Process Process Process
In-Memory Data Grid
Coherence Cluster
15. Репликация кэша
Быстрый доступ к объектам кэша
Все данные кэша реплицируются
Данные хранятся в виде нативных Java
объектов
Прямой доступ к данным
Изменения объектам реплицируются на весь
кластер
Идеально подходит для небольших объемов
статических данных
Applications
Data
Replication
Process Process Process Process
In-Memory Data Grid
Coherence Cluster
16. Application Application Application
Data
In-Memory Data Grid
Near Caching
Обеспечение быстрого доступа к данным
Данные делятся на локальные и
распределенные по узлам, на локальные и
архивные
Система учитывает часто изменяемые данные
и данные, к которым часто обращаются
Часто используемые данные хранятся
локально для быстрого доступа
Virtual Load Balancing
Есть различные стратегии автоматического
пополнения/обновления данных
Система масштабируется линейно Process Process Process Process
Coherence Cluster
17. Клиенты, прокси, POF
Оптимальный доступ через встроенный протокол и REST
Клиенты: Java, .Net, C++ и REST
Типы клиентов:
Coherence*Extend – внешние по отношению к
кластеру
Compute Clients – Java клиенты, часть кластера
Coherence
REST – клиенты
POF (Portal Object Format):
Сжатый бинарый формат объекта
Оптимальные хранения объектов в кластере
Снижает сетевые накладные расходы
Быстрое индексирования для доступа к
определенным полям объекта
.NET Client
Java Client
REST Client
POF
Cache
Cache Server Tier
Coherence Extend
C++ Client
Java Client
Proxy Tier
POF
Objects
POF
Coherence Cluster
18. Различные методы работы с данными в памяти
Кэш «в стороне», т.е. данными управляют разработчики
o Помещаем данные в память после чтения из источника данных
o Убираем или изменяем кэш после записи в хранилище
Синхронный режим
o Все данные читаются и пишутся через кэш
o Изменения в кэше производятся синхронно с изменениями в
хранилище
Асинхронный режим
o Все данные записываются/изменяются через кэш
o Изменения производятся асинхронно с источником данных
DAO
Cache
DAO Cache
DAO Cache
19. Параллельная обработка
Запросы, обработка, агрегирование в памяти
Запрос на обработку посылается туда, где
находятся данные
Обработка происходит параллельно в
кластере
o Query the Data Grid
o Continuous Query Cache
o Parallel Processing on the Data Grid
o Map/Reduce Aggregation
Application
Processing
Unit
Гарантия единократного ответа
(Once-and-only-once guarantees)
Обработка масштабируется по количеству
узлов In-Memory Data Grid
Process Process Process Process
Coherence Cluster
20. Уведомления о событиях
Поддержка работы с событиями
Уведомления о событиях в рамках кластера:
Java Bean
Key-based
Filter-based
«Живые» объекты
Объекты могут реагировать на изменения своего
собственного состояния
Состояние всегда можно определить
Application Application Application
Process Process Process Process
In-Memory Data Grid
Coherence Cluster
21. Эластичность данных
Революционный подход к масштабированию
до 10TB данных до 100TB данных
SSD SSD
Node
3
RAM
Node
6
RAM
Эластичность расширяет доступный объем
данных
Прозрачность хранения данных на более
дешевых SSD-дисках
Расширяет возможности Coherence в десятки раз
Можно работать с меньшим числом узлов
(уменьшая сложность системы)
RAM
Node
2
Node
3
Machine 1
Node
4
Node
5
Machine 2
Кластер без эластичности
Node
1
Размер ограничен количеством дорогой
оперативной памяти
Практический предел - 10TB данных
o 100 узлов кластера
o 10-20GB памяти в каждом узле
Node
6
Cluster
RAM
Cluster
Node
1
Node
2
Machine 1
Node
4
Node
5
Machine 2
22. Интеграция WebLogic и Coherence
«Из коробки»
Администрирование, операционный контроль и управление встроены в
WebLogic
Декларативное масштабирование и управление сессиями
Работа с памятью в синхронном/асинхронном чтение/запись
Аналитика, обработка событий, вычисления
WebLogic
Coherence
WebLogic
Coherence
Coherence
WebLogic
Coherence
WebLogic
Coherence
Coherence
Data Cache
Coherence
Data Cache
WebLogic
Coherence
WebLogic
Coherence
Coherence
Query/Event
Coherence
Query/Event
Coherence
Query/Event
Coherence
Query/Event
Декларативное управление
сессиями
Кэширование в режимах
чтения и записи
Запросы, вычисления и события
Coherence
Coherence Coherence
23. Дополнительные возможности
GoldenGate HotCache – решение проблемы
«stale cache» (изменение данных в
источниках из сторонних систем)
o Golden Gate определяет изменения и производит их в
кэше используя JPA/TopLink Grid
o Не требуется программирования
o Расширяет возможности решения на большие и
сложные системы
Федеративный кэш (распределенные
изменения в разных системах data grid) с
Tokyo
поддержкой различных распределенных
систем (Active/Passive, Active/Active, Hub
Spoke) и разрешением конфликтов Hub Spoke Group
London
Sydney
Active/Passive Group
New
York
Active/Active
Group
24. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
25. Резервное копирование
Асинхронный бэкап
• Синхронное и асинхронное
резервное копирование
• Асинхронное резервное
копирование увеличивает
пропускную способность на
40-50%
• Компромисс между высокой
доступностью и
производительностью
Synchronous Backup
1
2
Client Primary Backup
1
2 2
Client Primary Backup
3
Asynchronous Backup
3
4
26. Резервное копирование
Множество мест копирования
• Многоуровневое резервное
копирование
• Гарантированное сохранение
данных в случае одновременной
катастрофы нескольких машин
• Компромисс между высокой
доступностью и
производительностью
Backup
Client Primary Backup
Backup
Pre-12.1.2
12.1.2
Client Primary Backup Backup Backup
27. Coherence опции высокой доступности
Узел, машина, стойка, сайт
• Узел
• Машина
• Стойка - новое
• Сайт - новое
Rack 2
Machine 5
PP55
PP44’’
PP66
Machine 8
PP88
PP22’’
Machine 7
PP77
PP11’’
Machine 6
PP33’’
MAN
PP22
PP44
Site 1
PP11
PP22’’
Site 2
PP22
PP11’’
Rack 1
Machine 1
PP11
PP88’’
Machine 4
PP55’’
Machine 3
PP33
PP66’’
Machine 2
PP77’’
28. «Живые» события Coherence
Событийно-ориентированная архитектура
• Единый подход ко всем
событиям:
– Триггеры, листенеры
• Формализация программного
кода для событийного
подхода
• Декларативная конфигурация
Coherence Live Events
Apps
Interceptors
with
Custom Logic
29. • Асинхронный запуск задачи
• Сохраняет ресурсы клиентов
– Больше не надо делать
fork/invoke
– Решает проблемы загрузки
системы
• Мгновенный запуск задачи:
– Без ожидания ответа
– Больше одной задачи
одновременно
– Балансировка нагрузки
• Защита от «агресивных»
клиентов
Simple Invocation
AsynchronousProcessor procAsync =
new AsynchronousProcessor(
new NumberIncrementor(
(ValueManipulator)null, 1,
false));
cache.invoke(0, procAsync);
procAsync.get();
Invocation with Callback
final Entry[] aEntry = new Entry[1];
AsynchronousProcessor procAsync = new
AsynchronousProcessor(new
NumberIncrementor((ValueManipulator)
null, 1, false))
{
@Override
public synchronized void
onResult(Entry entry)
{ aEntry[0] = entry; }
@Override
public void onComplete()
{
Object oMonitor =
AsynchronousProcessorTests.this;
synchronized (oMonitor)
{ oMonitor.notify(); }
}
};
cache.invoke(0, procAsync);
// call back when result received
while (aEntry[0] == null)
{
synchronized (this)
{ wait(500) }
}
Асинхронные EntryProcessors
30. Адаптер к Memcached
• Миграция из Memcached
• Поддержка популярных клиентов
Memcached
• Использование всех
возможностей Coherence
–Масштабируемость, доступность,
надежность
– Интеграция источников данных с
поддержкой HotCache
– Безопасность
Memcached
Ruby Client
Memcached
… Client
Memcached
Acceptor
POF Serializer
Cache
Cache Server Proxy Server
Memcached
Java Client
Memcached
PHP Client
31. Поддержка JCache (JSR-107)
Стандартный API для кэширования на Java EE
• JSR-107
– Oracle управлял разработкой стандарта
– Единогласно принят в 2014
• Полностью поддерживается в
Coherence
– Поддержка сложной топологии
кэширования
– Совместимость со всеми типами клиентов
– Поддержка всех возможностей
Application
javax.cache.* API (JSR-107 JCache)
Coherence
Cache
Coherence JSR-107 Adapter
Coherence API (NamedCache)
Coherence Cluster
32. Улучшения в безопасности REST и удобстве использования
Улучшенные интеграция с клиентами
• Защищенный канал SSL
– HTTP basic authentication, client-side
certificates
– Fine-grained authorization
• Улучшения в работе запросов
– “named queries”
– Лимит на результаты запросов
– Получение кeyset
• Подключаемые движки запросов
(Query Engines)
In-Memory Data Grid
Proxy Tier
Data Tier
33. Coherence на Exalogic
Улучшение производительность, снижены требования к железу
• Infiniband Message Bus
– Снижение времени отклика до 6 раз
– Построено на Exabus APIs
• Более эффективное использование
памяти и SSD дисков
• Увеличение скорости
ребалансировки до 16 раз для
повышения доступности
Up to 6x Better Response Time
10Gbe IPoIB InfiniBand
Message Bus
34. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
35. Редакции Coherence
Coherence Standard Edition Coherence Enterprise Edition Coherence Grid Edition*
•Fault-tolerant data caching
•Unlimited Data Clients
•Coherence SE +
•Data management, including
write-behind, transactions,
analytics and events
•Coherence*Web
•Managed Coherence Servers
•Coherence EE +
•Unlimited Real-time clients**
•Unlimited Cache Clients**
•WAN Support
•Elastic Data
•GoldenGate HotCache
* Customers who have purchased WL Suite and want to upgrade to from
Coherence EE to GE can now do so via a WebLogic Suite option.
** Data Clients are C++, Java, .NET, or REST clients that are not cluster members. Real-time clients are
clients that use near cache, CQC, or listen to events from the cluster. Cache Clients are storage-disabled
cluster members.
36. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
38. Recoverable Caching
Enabling Coherence as Store of Record
• Recoverable storage of cached data
• Automatic recovery from cluster
failure
• Transactional or on-demand
durability
• Multiple storage topologies
–Maximum Scalability with distributed
local disks
–Maximum Availability with shared
storage (e.g. SAN)
Application
Coherence Cluster
On-Disk In-Memory
39. Multi-Datacenter Solutions London
Tokyo
Hub Spoke Group
Federated Caching
• Distribute data grid updates
• Span on-premise and cloud cluster
• Multiple distribution strategies
– Active/Passive
– Active/Active
– Hub Spoke
• Overlay distribution strategies across
locations
• Pluggable Conflict Resolution
Sydney
Active/Passive Group
New
York
Active/Active Group
Preliminary Testing: 75% more throughput, up
to 7x lower replication time
40. Multitenancy
Density and Operational Efficiency
• Host Multitenant Apps in Coherence
– Share cluster infrastructure
• Flexible cache configuration
– Tenant-specific caches
– Shared caches for common data
• Cache and Data Grid Operation Isolation
– Tenant scoped to Coherence Service
• Resource tuning via tenant configuration
• Common CAF lifecycle tooling
Tenant 1
Tenant 2
OHS / OTD
Coherence
Cache
T1
WLS - MT
Coherence API (NamedCache)
T2
T1 T1 T1
T2 T2 T2
41. Elastic Data Improvements
Increased Density and Larger Data Grids
• Improved Index Management
– Reduced Memory Footprint (target: 12.1.4)
– Query Optimization Engine (likely post 12.1.4)
• Significantly increases cluster densities
– ~10x over on-heap
• Opens up new “extra-large” use-cases
• Increased density reduces operational
costs
Machine 1 Machine 2
Coherence Cluster
RAM
Node
1
Node
2
Node
3
SSD
Data Index
RAM
Node
1
Node
2
Node
3
SSD
Data Index
42. Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
43. Пример внедрения: NTT Docomo
Аналитика мобильных событий в реальном времени
Самый крупный мобильный оператор в
Японии
Oracle Event Processing and Oracle Coherence
Наполняет и коррелирует трафик для Big Data
13 миллионов пользователей смартфонов
Более 700,000 событий в секунду
50% снижение себестоимости
Mobile
Traffic
Web
Devices
Real-time traffic processing
Oracle Coherence + Event Processing
Managing Events in Real Time
Big Data
44. Join the Coherence Community
@OracleCoherence /OracleCoherence Oracle Coherence
blogs.oracle.com/
Users
OracleCoherence
/OracleCoherence
Visit us at: coherence.oracle.com