Новые возможности распределенной обработки данных в...
-
Upload
andrey-akulov -
Category
Technology
-
view
154 -
download
11
Transcript of Новые возможности распределенной обработки данных в...
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Распределенная обработка данных в памяти с помощью Coherence 12c
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.2Strategic part of CAF HotCache, Managed Servers
2014Coherence launched as part of JCS
2011 3.7.1Exalogic Integration
2014 12.1.3JSR-107 ratified, led by Oracle + Coherence
2015 12cR2MAA MultitenancyJDK8
2001
Coherence 1.0
2007
Acquired by Oracle
Coherence In Memory Data GridЗачем это нужно
� Производительность
приложений� Прямой доступ из оперативной памяти –
информация более близка к приложениям
� Масштабируемость приложений
� Уменьшение нагрузки на базы за счет кэширования в памяти
� Надежность работы приложений
� За счет надежного распределенного кэша
CoherenceIn 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)
In Memory Data Grid
Кластер серверов приложений
WLS
Coherence
WLS
Coherence
Сервер приложений
Coherence
CoherenceCoherence
CoherenceCoherence
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Распределенный, устойчивый к сбоям, самоподдерживающийся
� Кластер узлов с данными (локальные и архивные)
�Данные узлов архивированы на другие узлы
�Любой узел знает обо всех данных во всех узлах
� Все узлы проверяют жизнеспособность других
� Если один из узлов «умирает», остальные узлы узнают о его состоянии
� «Умерший» узел изолируется из кластера
�Остальные узлы перераспределяют данные (основные и архивные) и принимают на себя работу этого узла
?
In-Memory Data Grid
Data
Распределенный кэшБезграничные возможности работы с данными и вычислениям в памяти
� Загруженные данные распределяются в памяти
�Объем данных и скорость обработки масштабируются линейно
� Система с распределенной ответственностью
� Скорость доступа и задержки (latency) постоянны
�Наилучшее решение для большого объема часто изменяемых данных
Applications
Process Process Process Process
Virtual Load Balancing
Coherence Cluster
ОтказоустойчивостьАвтоматическое управление целостностью
� Бэкапы хранятся на разных машинах
�Настраиваемое количество копий объектов
�Делегирование функции бэкапированиеопределенным узлам
� Единый процесс управления доступностью объектов
In-Memory Data Grid
Data
Applications
Process Process Process Process
Virtual Load Balancing
Fault Tolerance Management
Coherence Cluster
Репликация кэшаБыстрый доступ к объектам кэша
� Все данные кэша реплицируются
�Данные хранятся в виде нативных Java объектов
�Прямой доступ к данным
�Изменения объектам реплицируются на весь кластер
�Идеально подходит для небольших объемов статических данных
In-Memory Data Grid
Process Process Process Process
Replication
Data
Applications
Coherence Cluster
In-Memory Data Grid
Data
Near CachingОбеспечение быстрого доступа к данным
�Данные делятся на локальные и распределенные по узлам, на локальные и архивные
� Система учитывает часто изменяемые данные и данные, к которым часто обращаются
� Часто используемые данные хранятся локально для быстрого доступа
� Есть различные стратегии автоматического пополнения/обновления данных
� Система масштабируется линейно Process Process Process Process
Virtual Load Balancing
Coherence Cluster
Application Application Application
Клиенты, прокси, POFОптимальный доступ через встроенный протокол и REST
� Клиенты: Java, .Net, C++ и REST
� Типы клиентов:
� Coherence*Extend – внешние по отношению к кластеру
� Compute Clients – Java клиенты, часть кластера Coherence
� REST – клиенты
� POF (Portal Object Format):
� Сжатый бинарый формат объекта
� Оптимальные хранения объектов в кластере
� Снижает сетевые накладные расходы
� Быстрое индексирования для доступа к определенным полям объекта
REST ClientPOF
Cache
Java Client
Cache Server Tier
Coherence Extend
.NET Client
C++ Client
Java Client
Proxy Tier
POF
Objects
POF
Coherence Cluster
Различные методы работы с данными в памяти
� Кэш «в стороне», т.е. данными управляют разработчики
o Помещаем данные в память после чтения из источника данных
o Убираем или изменяем кэш после записи в хранилище
� Синхронный режим
o Все данные читаются и пишутся через кэш
o Изменения в кэше производятся синхронно с изменениями в хранилище
� Асинхронный режим
o Все данные записываются/изменяются через кэш
o Изменения производятся асинхронно с источником данных
DAO Cache
DAO Cache
Cache
DAO
Параллельная обработкаЗапросы, обработка, агрегирование в памяти
� Запрос на обработку посылается туда, где находятся данные
�Обработка происходит параллельно в кластере
o Query the Data Grid
o Continuous Query Cache
o Parallel Processing on the Data Grid
o Map/Reduce Aggregation
� Гарантия единократного ответа (Once-and-only-once guarantees)
�Обработка масштабируется по количеству узлов
In-Memory Data Grid
Process Process Process Process
Coherence Cluster
Application
Processing
Unit
Уведомления о событияхПоддержка работы с событиями
� Уведомления о событиях в рамках кластера:
� Java Bean
� Key-based
� Filter-based
� «Живые» объекты
� Объекты могут реагировать на изменения своего собственного состояния
� Состояние всегда можно определить
In-Memory Data Grid
Process Process Process Process
Coherence Cluster
Application Application Application
Эластичность данныхРеволюционный подход к масштабированию
Эластичность расширяет доступный объем
данных
� Прозрачность хранения данных на более дешевых SSD-дисках
� Расширяет возможности Coherence в десятки раз
� Можно работать с меньшим числом узлов (уменьшая сложность системы)
Кластер без эластичности
� Размер ограничен количеством дорогой оперативной памяти
� Практический предел - 10TB данных
o 100 узлов кластера
o 10-20GB памяти в каждом узле
Node
1
Node
2
Machine 1
Node
3
RAM
Node
4
Node
5
Machine 2
Node
6
Cluster
RAM
Cluster
Node
1
Node
2
Machine 1
Node
3
RAM
Node
4
Node
5
Machine 2
Node
6
RAM
SSD SSD
до 10TB данных до 100TB данных
Интеграция WebLogic и Coherence«Из коробки»
�Администрирование, операционный контроль и управление встроены в WebLogic
�Декларативное масштабирование и управление сессиями
�Работа с памятью в синхронном/асинхронном чтение/запись
�Аналитика, обработка событий, вычисления
Coherence
WebLogic
Coherence
WebLogic
Coherence
Coherence
WebLogic
Coherence
WebLogic
Coherence
Data CacheCoherence
Data Cache
Coherence
WebLogic
Coherence
WebLogic
CoherenceQuery/Event
CoherenceQuery/Event
CoherenceQuery/Event
CoherenceQuery/Event
Декларативное управление
сессиями
Кэширование в режимах
чтения и записиЗапросы, вычисления и события
Coherence
Coherence Coherence
Дополнительные возможности
� GoldenGate HotCache – решение проблемы
«stale cache» (изменение данных в
источниках из сторонних систем)
o Golden Gate определяет изменения и производит их в
кэше используя JPA/TopLink Grid
o Не требуется программирования
o Расширяет возможности решения на большие и
сложные системы
� Федеративный кэш (распределенные
изменения в разных системах data grid) с
поддержкой различных распределенных
систем (Active/Passive, Active/Active, Hub &
Spoke) и разрешением конфликтов Hub & Spoke Group
Tokyo
London
Sydney
Active/Passive Group
New
York
Active/Active
Group
Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
Резервное копирование
• Синхронное и асинхронное резервное копирование
• Асинхронное резервное копирование увеличивает пропускную способность на 40-50%
• Компромисс между высокой доступностью и производительностью
Асинхронный бэкап
Primary BackupClient
1
2 2
3
Asynchronous Backup
Primary BackupClient
1
3
2
4
Synchronous Backup
Резервное копирование
• Многоуровневое резервное копирование
• Гарантированное сохранение данных в случае одновременной катастрофы нескольких машин
• Компромисс между высокой доступностью и производительностью
Множество мест копирования
PrimaryClient Backup
Backup
Backup
Pre-12.1.2
PrimaryClient Backup Backup Backup
12.1.2
Coherence опции высокой доступности
• Узел
• Машина
• Стойка - новое
• Сайт - новое
Узел, машина, стойка, сайтRack 2
Machine 5
P4’P4’
P5P5
Machine 8
P2’P2’
P8P8
Machine 7
P1’P1’
P7P7
Machine 6
P3’P3’
P6P6
MANSite 1
P1P1
P2’P2’
Site 2
P2P2
P1’P1’
Rack 1Machine 1
P8’P8’
P1P1
Machine 4
P5’P5’
P4P4
Machine 3
P6’P6’
P3P3
Machine 2
P7’P7’
P2P2
«Живые» события Coherence
• Единый подход ко всем событиям:
– Триггеры, листенеры
• Формализация программного кода для событийного подхода
• Декларативная конфигурация
Событийно-ориентированная архитектура
Coherence Live Events
Apps
Interceptors
with
Custom Logic
• Асинхронный запуск задачи
• Сохраняет ресурсы клиентов
– Больше не надо делать fork/invoke
– Решает проблемы загрузки системы
• Мгновенный запуск задачи:
– Без ожидания ответа
– Больше одной задачи одновременно
– Балансировка нагрузки
• Защита от «агресивных» клиентов
Simple InvocationAsynchronousProcessor procAsync =
new AsynchronousProcessor( new NumberIncrementor( (ValueManipulator)null, 1,
false));
cache.invoke(0, procAsync);procAsync.get();
Invocation with Callbackfinal Entry[] aEntry = new Entry[1];AsynchronousProcessor procAsync = new
AsynchronousProcessor(new NumberIncrementor((ValueManipulator) null, 1, false)){
@Overridepublic synchronized void
onResult(Entry entry){ aEntry[0] = entry; }
@Overridepublic void onComplete(){
Object oMonitor = AsynchronousProcessorTests.this;synchronized (oMonitor){ oMonitor.notify(); }
}};
cache.invoke(0, procAsync);
// call back when result receivedwhile (aEntry[0] == null)
{synchronized (this)
{ wait(500) }}
Асинхронные EntryProcessors
Адаптер к Memcached
• Миграция из Memcached
• Поддержка популярных клиентов Memcached
• Использование всех возможностей Coherence
–Масштабируемость, доступность, надежность
–Интеграция источников данных с поддержкой HotCache
– Безопасность
Memcached
… Client
Cache
Memcached Acceptor
Memcached
Ruby Client
POF Serializer
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 Cluster
Coherence JSR-107 Adapter
Coherence API (NamedCache)
Улучшения в безопасности 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 раз для повышения доступности
Улучшение производительность, снижены требования к железу
10Gbe IPoIB InfiniBand
Message Bus
Up to 6x Better Response Time
Программа
Краткий обзор Coherence
Возможности Coherence 12c
Редакции Coherence
Планы развития Coherence 12c
Примеры внедрений
Редакции CoherenceCoherence 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
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
2013 2015
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
• 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)
Enabling Coherence as Store of Record
Coherence Cluster
Application
In-M
em
ory
On
-Dis
k
Hub & Spoke Group
Tokyo
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
Multi-Datacenter Solutions London
Sydney
Active/Passive Group
New
York
Active/Active Group
Preliminary Testing: >75% more throughput, up to 7x lower replication time
Multitenancy
• 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
Density and Operational Efficiency
Tenant 1
OHS / OTD
Coherence
Cache T1
WLS - MT
Coherence API (NamedCache)
Tenant 2
T2
T1 T1 T1
T2T2T2
Elastic Data Improvements
• 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
Increased Density and Larger Data Grids
Coherence Cluster
Machine 1 Machine 2
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 processingOracle Coherence + Event Processing
Managing Events in Real Time
Big Data
Join the Coherence Community
Visit us at: coherence.oracle.com
Oracle Coherence
Users
/OracleCoherence@OracleCoherence blogs.oracle.com/
OracleCoherence
/OracleCoherence
4