Распределенная 
обработка данных в 
памяти с помощью 
Coherence 12c 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
CAF 12c 
Антон Шмаков
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
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
Coherence In Memory Data Grid 
Зачем это нужно 
 Производительность 
приложений 
Приложения Приложения 
 Прямой доступ из оперативной памяти – 
информация более близка к приложениям 
 Масштабируемость приложений 
 Уменьшение нагрузки на базы за счет кэширования в памяти 
 Надежность работы приложений 
 За счет надежного распределенного кэша 
Coherence 
In Memory 
Data Grid
Новая архитектура работы приложений 
Social, Mobile, «Internet of Things» 
In-Memory 
Data Grid 
Больше данных из 
разных источников 
Пользователи и 
приложения 
работают в 
реальном времени 
Coherence: 
Распределенный кэш 
и обработка в памяти
Coherence – первое решение по объединенному 
распределенному кэшу в памяти 
Первое поколение решений 
по кэшированию 
Приложение Приложение 
Независимый 
кэш 
Независимый 
кэш 
 Сложное масштабирование 
 Сложно поддерживать свежие данные 
в памяти 
 Большие требования к памяти 
Современная наилучшая практика 
работы с данными в памяти 
Приложение Приложение 
Слой приложений 
Слой приложений 
Кластеризованный кэш в памяти 
(Clustered Cache Data Grid) 
Coherence Coherence Coherence Coherence 
Слой данных в памяти (Data Grid) 
 Легкое масштабирование – горизонтально и 
вертикально 
 Легкость обновления данных – один кэш 
для обновления 
 Сильное увеличение производительности за 
счет параллельных вычислений
Серверы приложений с Coherence 
Производительность при использовании уровня данных в памяти 
(Data Grid) 
Кластер серверов приложений 
WLS 
Coherence 
In Memory Data Grid 
Сервер приложений 
WLS 
Coherence 
Coherence 
Coherence 
Coherence 
Coherence 
Coherence 
Coherence 
Сервер WebLogic Server + Coherence
Примеры использования технологии 
Кому это нужно 
 Кэширование 
o Клиентские приложения запрашивают и работают с 
данными в памяти, а не на серверах хранения 
 Аналитика 
o Клиентские приложения запрашивают данные из памяти 
(есть язык CohQL похожий на SQL) и моделируют в памяти 
 Вычисления 
o Приложения производят вычисления (бизнес-логику и 
транзакции) в распределенной памяти 
 События 
o Приложения производят действия основываясь на 
событиях в распределенной памяти
Oracle Coherence 
Основные свойства и преимущества 
 Технология data fabric/grid для управления данными в распределенной 
сети без точки отказа (все узлы равноправны – без single points of failure) 
 Единое представление данных на всех узлах 
 Данные и индексы «поднимаются» в оперативную память с 
автоматическими транзакциями изменений в базу данных (с 
пониманием flash disks, SSD и обычных дисков) 
 Динамическое распределение данных по узлам и автоматическая 
балансировка нагрузки 
 При потере одного узла остальные перераспределяют его нагрузку 
 Поддержка различных запросов, которые параллельно обрабатываются 
узлами 
 Линейное масштабирование системы (внедрения до тысяч узлов) 
 Расширенная безопасность (авторизация, использование identity token)
Coherence Clustered Caching 
Распределенный, устойчивый к сбоям, самоподдерживающийся 
 Кластер узлов с данными (локальные и архивные) 
 Данные узлов архивированы на другие узлы 
 Любой узел знает обо всех данных во всех узлах 
 Все узлы проверяют жизнеспособность других 
 Если один из узлов «умирает», остальные узлы узнают о его состоянии 
 «Умерший» узел изолируется из кластера 
 Остальные узлы перераспределяют данные (основные и архивные) 
и принимают на себя работу этого узла 
?
Data 
Virtual Load Balancing 
In-Memory Data Grid 
Распределенный кэш 
Безграничные возможности работы с данными 
и вычислениям в памяти 
 Загруженные данные распределяются в 
памяти 
 Объем данных и скорость обработки 
масштабируются линейно 
 Система с распределенной ответственностью 
 Скорость доступа и задержки (latency) 
постоянны 
 Наилучшее решение для большого объема 
часто изменяемых данных 
Applications 
Process Process Process Process 
Coherence Cluster
Отказоустойчивость 
Автоматическое управление целостностью 
 Бэкапы хранятся на разных машинах 
 Настраиваемое количество копий объектов 
 Делегирование функции бэкапирование 
определенным узлам 
 Единый процесс управления доступностью 
объектов 
Applications 
Data 
Virtual Load Balancing 
Fault Tolerance Management 
Process Process Process Process 
In-Memory Data Grid 
Coherence Cluster
Репликация кэша 
Быстрый доступ к объектам кэша 
 Все данные кэша реплицируются 
 Данные хранятся в виде нативных Java 
объектов 
 Прямой доступ к данным 
 Изменения объектам реплицируются на весь 
кластер 
 Идеально подходит для небольших объемов 
статических данных 
Applications 
Data 
Replication 
Process Process Process Process 
In-Memory Data Grid 
Coherence Cluster
Application Application Application 
Data 
In-Memory Data Grid 
Near Caching 
Обеспечение быстрого доступа к данным 
 Данные делятся на локальные и 
распределенные по узлам, на локальные и 
архивные 
 Система учитывает часто изменяемые данные 
и данные, к которым часто обращаются 
 Часто используемые данные хранятся 
локально для быстрого доступа 
Virtual Load Balancing 
 Есть различные стратегии автоматического 
пополнения/обновления данных 
 Система масштабируется линейно Process Process Process Process 
Coherence Cluster
Клиенты, прокси, 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
Различные методы работы с данными в памяти 
 Кэш «в стороне», т.е. данными управляют разработчики 
o Помещаем данные в память после чтения из источника данных 
o Убираем или изменяем кэш после записи в хранилище 
 Синхронный режим 
o Все данные читаются и пишутся через кэш 
o Изменения в кэше производятся синхронно с изменениями в 
хранилище 
 Асинхронный режим 
o Все данные записываются/изменяются через кэш 
o Изменения производятся асинхронно с источником данных 
DAO 
Cache 
DAO Cache 
DAO Cache
Параллельная обработка 
Запросы, обработка, агрегирование в памяти 
 Запрос на обработку посылается туда, где 
находятся данные 
 Обработка происходит параллельно в 
кластере 
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
Уведомления о событиях 
Поддержка работы с событиями 
 Уведомления о событиях в рамках кластера: 
 Java Bean 
 Key-based 
 Filter-based 
 «Живые» объекты 
 Объекты могут реагировать на изменения своего 
собственного состояния 
 Состояние всегда можно определить 
Application Application Application 
Process Process Process Process 
In-Memory Data Grid 
Coherence Cluster
Эластичность данных 
Революционный подход к масштабированию 
до 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
Интеграция 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
Дополнительные возможности 
 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
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
Резервное копирование 
Асинхронный бэкап 
• Синхронное и асинхронное 
резервное копирование 
• Асинхронное резервное 
копирование увеличивает 
пропускную способность на 
40-50% 
• Компромисс между высокой 
доступностью и 
производительностью 
Synchronous Backup 
1 
2 
Client Primary Backup 
1 
2 2 
Client Primary Backup 
3 
Asynchronous Backup 
3 
4
Резервное копирование 
Множество мест копирования 
• Многоуровневое резервное 
копирование 
• Гарантированное сохранение 
данных в случае одновременной 
катастрофы нескольких машин 
• Компромисс между высокой 
доступностью и 
производительностью 
Backup 
Client Primary Backup 
Backup 
Pre-12.1.2 
12.1.2 
Client Primary Backup Backup Backup
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’’
«Живые» события Coherence 
Событийно-ориентированная архитектура 
• Единый подход ко всем 
событиям: 
– Триггеры, листенеры 
• Формализация программного 
кода для событийного 
подхода 
• Декларативная конфигурация 
Coherence Live Events 
Apps 
Interceptors 
with 
Custom Logic
• Асинхронный запуск задачи 
• Сохраняет ресурсы клиентов 
– Больше не надо делать 
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
Адаптер к 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
Поддержка 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
Улучшения в безопасности REST и удобстве использования 
Улучшенные интеграция с клиентами 
• Защищенный канал SSL 
– HTTP basic authentication, client-side 
certificates 
– Fine-grained authorization 
• Улучшения в работе запросов 
– “named queries” 
– Лимит на результаты запросов 
– Получение кeyset 
• Подключаемые движки запросов 
(Query Engines) 
In-Memory Data Grid 
Proxy Tier 
Data Tier
Coherence на Exalogic 
Улучшение производительность, снижены требования к железу 
• Infiniband Message Bus 
– Снижение времени отклика до 6 раз 
– Построено на Exabus APIs 
• Более эффективное использование 
памяти и SSD дисков 
• Увеличение скорости 
ребалансировки до 16 раз для 
повышения доступности 
Up to 6x Better Response Time 
10Gbe IPoIB InfiniBand 
Message Bus
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
Редакции 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.
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
Oracle Coherence 12c Roadmap 
2013 2015 
12.1.2 (July 2013) 
• Managed Coherence Servers 
• GoldenGate HotCache 
• Live Events 
• Configuration Modernization 
• Asynchronous Backups 
• Improved Backup Management 
• Maven Support 
• Exalogic optimizations 
• Dynamic Proxy Thread Pool Tuning 
• REST Improvements 
• OUI/Opatch Integration 
Community @ Java.Net 
• Coherence Incubator 12 (12.1.2) 
• Coherence Spring Integration 
• Coherence Hibernate 4 L2 Cache 
12.1.3 (June 2014) 
• JSR 107/Jcache 
• Memcached Protocol Support 
• VisualVM Plugin 
• Exalogic IMB 2.0 
• Asynchronous EntryProcessors 
12.2.1 
• Multitenancy 
• Recoverable Caching 
• Federated Caching 
• Authorization/Audit Improvements 
• Oracle Fusion Middleware Control 
• Managed Coherence Servers 2.0 
• Elastic Data Improvements 
• Java 8 Support 
• Generics Support 
2014
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
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
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
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
Программа 
Краткий обзор Coherence 
Возможности Coherence 12c 
Редакции Coherence 
Планы развития Coherence 12c 
Примеры внедрений
Пример внедрения: 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
Join the Coherence Community 
@OracleCoherence /OracleCoherence Oracle Coherence 
blogs.oracle.com/ 
Users 
OracleCoherence 
/OracleCoherence 
Visit us at: coherence.oracle.com
4

Новые возможности распределенной обработки данных в памяти (Coherence)

  • 2.
    Распределенная обработка данныхв памяти с помощью Coherence 12c Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | CAF 12c Антон Шмаков
  • 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 MemoryData 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 LoadBalancing 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 CoherenceStandard 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 Примеры внедрений
  • 37.
    Oracle Coherence 12cRoadmap 2013 2015 12.1.2 (July 2013) • Managed Coherence Servers • GoldenGate HotCache • Live Events • Configuration Modernization • Asynchronous Backups • Improved Backup Management • Maven Support • Exalogic optimizations • Dynamic Proxy Thread Pool Tuning • REST Improvements • OUI/Opatch Integration Community @ Java.Net • Coherence Incubator 12 (12.1.2) • Coherence Spring Integration • Coherence Hibernate 4 L2 Cache 12.1.3 (June 2014) • JSR 107/Jcache • Memcached Protocol Support • VisualVM Plugin • Exalogic IMB 2.0 • Asynchronous EntryProcessors 12.2.1 • Multitenancy • Recoverable Caching • Federated Caching • Authorization/Audit Improvements • Oracle Fusion Middleware Control • Managed Coherence Servers 2.0 • Elastic Data Improvements • Java 8 Support • Generics Support 2014
  • 38.
    Recoverable Caching EnablingCoherence 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 andOperational 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.
    Пример внедрения: NTTDocomo Аналитика мобильных событий в реальном времени Самый крупный мобильный оператор в Японии 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 CoherenceCommunity @OracleCoherence /OracleCoherence Oracle Coherence blogs.oracle.com/ Users OracleCoherence /OracleCoherence Visit us at: coherence.oracle.com
  • 45.