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

45

Transcript of Новые возможности распределенной обработки данных в...

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

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Распределенная обработка данных в памяти с помощью Coherence 12c

CAF 12cАнтон Шмаков

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

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

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

Coherence In Memory Data GridЗачем это нужно

� Производительность

приложений� Прямой доступ из оперативной памяти –

информация более близка к приложениям

� Масштабируемость приложений

� Уменьшение нагрузки на базы за счет кэширования в памяти

� Надежность работы приложений

� За счет надежного распределенного кэша

CoherenceIn Memory

Data Grid

ПриложенияПриложения

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

Новая архитектура работы приложенийSocial, Mobile, «Internet of Things»

In-Memory

Data Grid

Больше данных из

разных источников

Пользователи и

приложения

работают в

реальном времени

Coherence:

Распределенный кэш

и обработка в памяти

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

Coherence – первое решение по объединенному распределенному кэшу в памяти

Первое поколение решений

по кэшированию

Приложение Приложение

Независимый

кэш

Независимый

кэш

� Сложное масштабирование

� Сложно поддерживать свежие данные

в памяти

� Большие требования к памяти

Приложение Приложение

Современная наилучшая практика

работы с данными в памяти

Слой приложений

Слой приложений

Кластеризованный кэш в памяти

(Clustered Cache Data Grid)

Coherence Coherence Coherence Coherence

Слой данных в памяти (Data Grid)

� Легкое масштабирование – горизонтально и

вертикально

� Легкость обновления данных – один кэш

для обновления

� Сильное увеличение производительности за

счет параллельных вычислений

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

Серверы приложений с Coherence Производительность при использовании уровня данных в памяти (Data Grid)

In Memory Data Grid

Кластер серверов приложений

WLS

Coherence

WLS

Coherence

Сервер приложений

Coherence

CoherenceCoherence

CoherenceCoherence

Coherence

Сервер WebLogic Server + Coherence

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

Примеры использования технологииКому это нужно

� Кэширование

o Клиентские приложения запрашивают и работают с данными в памяти, а не на серверах хранения

� Аналитика

o Клиентские приложения запрашивают данные из памяти (есть язык CohQL похожий на SQL) и моделируют в памяти

� Вычисления

o Приложения производят вычисления (бизнес-логику и транзакции) в распределенной памяти

� События

o Приложения производят действия основываясь на событиях в распределенной памяти

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

Oracle CoherenceОсновные свойства и преимущества

� Технология data fabric/grid для управления данными в распределенной

сети без точки отказа (все узлы равноправны – без single points of failure)

� Единое представление данных на всех узлах

� Данные и индексы «поднимаются» в оперативную память с

автоматическими транзакциями изменений в базу данных (с

пониманием flash disks, SSD и обычных дисков)

� Динамическое распределение данных по узлам и автоматическая

балансировка нагрузки

� При потере одного узла остальные перераспределяют его нагрузку

� Поддержка различных запросов, которые параллельно обрабатываются

узлами

� Линейное масштабирование системы (внедрения до тысяч узлов)

� Расширенная безопасность (авторизация, использование identity token)

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

Coherence Clustered CachingРаспределенный, устойчивый к сбоям, самоподдерживающийся

� Кластер узлов с данными (локальные и архивные)

�Данные узлов архивированы на другие узлы

�Любой узел знает обо всех данных во всех узлах

� Все узлы проверяют жизнеспособность других

� Если один из узлов «умирает», остальные узлы узнают о его состоянии

� «Умерший» узел изолируется из кластера

�Остальные узлы перераспределяют данные (основные и архивные) и принимают на себя работу этого узла

?

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

In-Memory Data Grid

Data

Распределенный кэшБезграничные возможности работы с данными и вычислениям в памяти

� Загруженные данные распределяются в памяти

�Объем данных и скорость обработки масштабируются линейно

� Система с распределенной ответственностью

� Скорость доступа и задержки (latency) постоянны

�Наилучшее решение для большого объема часто изменяемых данных

Applications

Process Process Process Process

Virtual Load Balancing

Coherence Cluster

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

ОтказоустойчивостьАвтоматическое управление целостностью

� Бэкапы хранятся на разных машинах

�Настраиваемое количество копий объектов

�Делегирование функции бэкапированиеопределенным узлам

� Единый процесс управления доступностью объектов

In-Memory Data Grid

Data

Applications

Process Process Process Process

Virtual Load Balancing

Fault Tolerance Management

Coherence Cluster

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

Репликация кэшаБыстрый доступ к объектам кэша

� Все данные кэша реплицируются

�Данные хранятся в виде нативных Java объектов

�Прямой доступ к данным

�Изменения объектам реплицируются на весь кластер

�Идеально подходит для небольших объемов статических данных

In-Memory Data Grid

Process Process Process Process

Replication

Data

Applications

Coherence Cluster

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

In-Memory Data Grid

Data

Near CachingОбеспечение быстрого доступа к данным

�Данные делятся на локальные и распределенные по узлам, на локальные и архивные

� Система учитывает часто изменяемые данные и данные, к которым часто обращаются

� Часто используемые данные хранятся локально для быстрого доступа

� Есть различные стратегии автоматического пополнения/обновления данных

� Система масштабируется линейно Process Process Process Process

Virtual Load Balancing

Coherence Cluster

Application Application Application

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

Клиенты, прокси, 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

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

Различные методы работы с данными в памяти

� Кэш «в стороне», т.е. данными управляют разработчики

o Помещаем данные в память после чтения из источника данных

o Убираем или изменяем кэш после записи в хранилище

� Синхронный режим

o Все данные читаются и пишутся через кэш

o Изменения в кэше производятся синхронно с изменениями в хранилище

� Асинхронный режим

o Все данные записываются/изменяются через кэш

o Изменения производятся асинхронно с источником данных

DAO Cache

DAO Cache

Cache

DAO

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

Параллельная обработкаЗапросы, обработка, агрегирование в памяти

� Запрос на обработку посылается туда, где находятся данные

�Обработка происходит параллельно в кластере

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

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

Уведомления о событияхПоддержка работы с событиями

� Уведомления о событиях в рамках кластера:

� Java Bean

� Key-based

� Filter-based

� «Живые» объекты

� Объекты могут реагировать на изменения своего собственного состояния

� Состояние всегда можно определить

In-Memory Data Grid

Process Process Process Process

Coherence Cluster

Application Application Application

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

Эластичность данныхРеволюционный подход к масштабированию

Эластичность расширяет доступный объем

данных

� Прозрачность хранения данных на более дешевых 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 данных

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

Интеграция 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

Page 23: Новые возможности распределенной обработки данных в памяти (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

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

Резервное копирование

• Синхронное и асинхронное резервное копирование

• Асинхронное резервное копирование увеличивает пропускную способность на 40-50%

• Компромисс между высокой доступностью и производительностью

Асинхронный бэкап

Primary BackupClient

1

2 2

3

Asynchronous Backup

Primary BackupClient

1

3

2

4

Synchronous Backup

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

Резервное копирование

• Многоуровневое резервное копирование

• Гарантированное сохранение данных в случае одновременной катастрофы нескольких машин

• Компромисс между высокой доступностью и производительностью

Множество мест копирования

PrimaryClient Backup

Backup

Backup

Pre-12.1.2

PrimaryClient Backup Backup Backup

12.1.2

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

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

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

«Живые» события Coherence

• Единый подход ко всем событиям:

– Триггеры, листенеры

• Формализация программного кода для событийного подхода

• Декларативная конфигурация

Событийно-ориентированная архитектура

Coherence Live Events

Apps

Interceptors

with

Custom Logic

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

• Асинхронный запуск задачи

• Сохраняет ресурсы клиентов

– Больше не надо делать 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

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

Адаптер к 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

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

Поддержка 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)

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

Улучшения в безопасности REST и удобстве использования

• Защищенный канал SSL

– HTTP basic authentication, client-side certificates

– Fine-grained authorization

• Улучшения в работе запросов

– “named queries”

– Лимит на результаты запросов

– Получение кeyset

• Подключаемые движки запросов (Query Engines)

Улучшенные интеграция с клиентами

In-Memory Data Grid

Proxy Tier

Data Tier

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

Coherence на Exalogic

• Infiniband Message Bus

– Снижение времени отклика до 6 раз

– Построено на Exabus APIs

• Более эффективное использование памяти и SSD дисков

• Увеличение скорости ребалансировки до 16 раз для повышения доступности

Улучшение производительность, снижены требования к железу

10Gbe IPoIB InfiniBand

Message Bus

Up to 6x Better Response Time

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

Редакции 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.

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

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

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

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

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

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

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

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

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

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

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

Программа

Краткий обзор Coherence

Возможности Coherence 12c

Редакции Coherence

Планы развития Coherence 12c

Примеры внедрений

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

Пример внедрения: 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

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

Join the Coherence Community

Visit us at: coherence.oracle.com

Oracle Coherence

Users

/OracleCoherence@OracleCoherence blogs.oracle.com/

OracleCoherence

/OracleCoherence

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

4