summit 2014 yellow - · pdf filejboss bpm suite application integration jboss fuse service...

Post on 17-Mar-2018

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Replication between datacenters with Red Hat JBoss Data Grid

Tristan TarrantPrincipal Software Engineer, Red HatDivya MehraPrincipal Product Manager, Red Hat

Agenda

• Introduction to Red Hat JBoss Data Grid (JDG) - Divya

• Replication between datacenters - Tristan

• JDG Roadmap - Divya

• Q&A

Agenda

•Divya Mehra

•Product manager, Red Hat JBoss Data Grid

•Tristan Tarrant

•Lead Productization Engineer, Red Hat JBoss Data Grid

•@tristantarrant / @infinispan

•http://infinispan.blogspot.com

Red Hat JBoss Middleware Portfolio

User InteractionJBoss Portal Platform

Business Process Management

JBoss BRMSJBoss BPM Suite

Application IntegrationJBoss Fuse Service Works

JBoss Fuse

Application PlatformsJBoss Enterprise Application Platform, JBoss Enterprise Web Server

JBoss A-MQ JBoss Data GridJBoss Data

Virtualization

DevelopmentTools

JBoss Developer Studio

Web Framework Kit

Management Tools

JBoss Operations Network

Red Hat Enterprise Linux, Unix, Windows

Amazon EC2 Other Red Hat Virtualization

VMWare MicrosoftHyper-V

DESIGN / DEVELOPRUN & EXECUTEDESIGN & DEVELOP

Red Hat JBoss Data Grid - Overview

•Distributed in-memory data grid

•High performance

•Access and process data at in-memory speeds

•Highly scalable

•Data grid scales independent from the applications and database

•High availability

•Within and across datacenters

•Compatibility - Java and non-Java

Red Hat JBoss Data Grid – Key Features

•Embedded or Client-server deployment

•Hot Rod, memcached, REST protocols

•Consistent hashing and topology awareness

•Distribution/Replication of data

•High performance persistence

•Eviction and Expiration

•Querying: Search data using values instead of keys

Red Hat JBoss Data Grid – Key Features

•Distributed transactions

•Event-driven computations

•Distributed executors and map/reduce

•Rolling upgrades

•Monitoring and Management

Red Hat JBoss Data Grid – Use Cases

•As a distributed cache on top of or alongside a database

• Improve response time in workflows

•As a primary data store

•Recent, most relevant, or often-changing data• Where in-memory processing provides advantage

• Older or less relevant data optionally archived to a persistent store

•Unstructured data JDG public reference

customers

Data Center Replication

Data-Center Replication

•What is it ?

•What problems does it solve ?

•How is it done ?

•Setup and configuration

•Demo

A peek at JBoss Data Grid's Architecture

JBoss Data Grid Architecture

NODE A NODE B NODE C

TRANSPORT

NODE ...

JGroups

Node DiscoveryCluster membership (Views)

Fragmentation handlingFlow Control,

Ordering, Retransmission,

Multicast and BroadcastChoice of transport type: UDP, TCP

<stack name="udp"><transport type="UDP" socket-binding="jgroups-udp"/> ...

</stack>

Why implement multiple sites?

Site failure

•Aka Disaster Recovery

•Rare event...

•Causes: hardware failure, network failure, “Acts of God”

Follow the sun

•Data is closest to where clients are using it

•Only one data center active at any moment

•Replicate between active and passive data-centers

•Use smart routing to use available data-center (e.g. mod_cluster)

How do we implement Cross-Site replication ?

Implementation: the replication bus

•An additional transport connecting sites together

•Each site has a set of master nodes in charge of talking with the other sites

•Once local modifications are committed (single op or transaction) they are sent to remote nodes

Cross-Site Replication Architecture

NODE A NODE B

NODE C

LOCAL EARTH TRANSPORT

NODE ...

<stack name="udp-earth"><transport type="UDP" socket-binding="jgroups-udp"/> …<relay site="EARTH">

<remote-site name="MOON" stack="tcp" cluster="global"/></relay>

</stack>

NODE A NODE B

NODE C

LOCAL MOON TRANSPORT

NODE ...

CROSS-SITETRANSPORT

<stack name="tcp"><transport type="TCP" socket-binding="jgroups-tcp"/>

...</stack>

<stack name="udp-moon"><transport type="UDP" socket-binding="jgroups-udp"/> …<relay site="MOON">

<remote-site name="EARTH" stack="tcp" cluster="global"/></relay>

</stack>

Features and configuration

Replication Modes

•Synchronous

•Blocks until ops applied locally and on backups

•Asynchronous

•Local ops return immediately, backup ops are queued

Transactions handling

•Transactions are propagated between sites

•One phase commit

•Transaction is sent to the backup node during the commit phase

•Commit might fail locally!

•Recovery

•Two phase commit

•when concurrent writes are needed

•slow

Handling Replication Failures

•What if the backup fails?

•Fail

•Warn

• Ignore

•Custom policy

Management

•Backup sites can be managed at runtime (JON / CLI)

•Sites can be placed online/offline

•Manually (management interface)

•Automatically (after specific failure conditions [timeout/fail count])

Demo

Demo: From the Earth to the Moon

•Two Sites: Earth and Moon

•Two Nodes per site: (Earth1, Earth2) (Moon1, Moon2)

•Two caches:

•distributed (local clustering)

•distributed (local clustering + remote replication)

The Future

Current Limitations

• Initial state transfer

•Long waits when backup comes online

•Synchronous transactions are slow

•And asynchronous ones are unreliable

Cross-site state transfer

•Goal: sync new and previously offline sites

•Management operation to initiate transfer

•Runs concurrently with ops

•Pre-existing data on backup overwritten, except

•ops which happen after initiation

•entries which are local to the backup

•Non-blocking !

IRAC: Making async reliable

•Problem

•Geographical transactions have high latency

• Increased fragility caused by size of geographical cluster

•Solution: Infinispan Reliable Asynchronous Clustering

•Guarantee local site reliability and consistency

•Make remote updates asynchronous

•Updater queues: send ordered transactions to remote site

Red Hat JBoss Data Grid - Roadmap

JDG 6

6.36.06.0

6.1 (March 2013) ● Non-Blocking State Transfer● Cross Site Replication (X-site)● Map/Reduce 2.0● Rolling Upgrades – Hot Rod

6.2 (January 2014)● Querying- Support in Library mode● Remote Querying (Tech Preview)● C++ Hot Rod Client ● Data compatibility across protocols● High performance cache stores● Rolling upgrades - REST

6.3 (Target Q2/Q3 2014*)● Security – Authentication/Authorization ● C# Hot Rod client ● Support in Apache Karaf● JBoss EAP 6 modules

6.16.1 6.46.26.2

* Future dates and features are tentative and subject to change.

6.4 (Target Q4 2014*)● Remote Querying – full support ● Remote events/listeners ● Near caching in client-server mode (over Hot Rod)● Handling network partitions● Cross Site state transfer

JDG 7

7.0

Related session

•Maximizing Performance with Red Hat JBoss Data Grid, Thursday, April 17, 11 am - noon

•Fillippo Crea (SIA)

•Andrea Sormanni (SIA)

•Edoardo Schepis (Red Hat)

Q & A

top related