+ All Categories
Home > Documents > RED HAT JBOSS DATA GRID 6 - Emergent · RED HAT JBOSS DATA GRID 6 ... An in-memory distributed...

RED HAT JBOSS DATA GRID 6 - Emergent · RED HAT JBOSS DATA GRID 6 ... An in-memory distributed...

Date post: 14-Apr-2018
Category:
Upload: dotram
View: 231 times
Download: 1 times
Share this document with a friend
41
1 RED HAT JBOSS DATA GRID 6 John Osborne Middleware Solutions Architect [email protected]
Transcript

1

RED HAT JBOSS DATA GRID 6

John OsborneMiddleware Solutions [email protected]

2

Agenda● Business Challenges● Architectures

● Awesomeness● Querying/Indexing● Real-time applications● Standards based Security● Map/Reduce● Monitoring● Road Map

3

Business Challenges

4

Traditional data and knowledge

● In people, on paper, and in data warehouses

● In relational tables, rows, and columns

Modern data and knowledge

● On websites, mobile devices, and in the cloud

● Global, at home, at work, and distributed

● In non-traditional and non-relational forms

● Video, images, phrases, and tags

● Tweets, timelines, conversations, comments, and “likes”

Business today

Varied, real-time, complex in nature...

5

The challenge

How do you design your application for:

● Performance during unprecedented transaction volumes?

● Availability to meet high uptime requirements?

● Flexibility in open hybrid cloud environments?

● Reliability to provide accurate, real-time information?

● Independence from the complex, rigid data-tier?

6

Modern challenges, traditional solutions?

Design for more...● Pile on complex code, servers,

databases, DBAs

● Cost-prohibitive

● Quick fix until you need to scale again

Start from scratch...

● Completely re-architect

● Sharding? Denormalization?

● Complicated

● Time- and resource-intensive

● Risky

7

What is a data grid?

● An in-memory distributed database designed for fast access to large volumes of data and scalability

● Commonly a complementary layer to the relational database and the application

Key data grid characteristics:

● In-memory, distributed caching

● Elastic scalability

● Advanced querying

● Data replication

● Processing for streaming data

● Transaction capabilities

8

“Although the in-memory data grid (IMDG) market, a key IMC segment,is small, it is likely to grow fast and to

reach $1 billion by 2016.”

SOURCE: Gartner, Gartner Says In-Memory Computing Is Racing Towards Mainstream Adoption, http://www.gartner.com/newsroom/id/2405315

9

Fast access to data

● In-memory speeds, high availability, reliability, elasticity

● Built on proven, popular open source Infinispan technology

Flexibility beyond Java

● Compatible with Java and non-Java platforms

Premium and advanced features in a cost-effective subscription

● Includes Red Hat JBoss Operations Network Management for management tooling

● Includes remote clients

10

JBoss Data Grid Architectures and Configurations

11

Configuration - Local cacheAlleviate load on the traditional database and boost application performance

A more sophisticated data structure...

● Memory management

● Persistence

● Eviction, expiration

● Eliminate memory overflow errors

● Warm-start, preload

● Transaction capable (JTA)

● Rich monitoring and administration (via JBoss Operations Network)

● Events and notifications

● Plugs into many frameworks to boost performance

Ideal for:

Single processes

Data unique to a process

Unshared data

12

Configuration – Remote CacheSeparate the lifecycle and maintenance of theapplication from its cache/data.

13

Configuration - Replicated cacheUltimate failover protection

● Instant reads, linear performance scalability

● Network overhead scales linearly

● Limited to a single JVM heap size

● Replicate the same key/value, updates across the cluster

Ideal for:

Small, fixed datasets

Scenarios requiring extremely high fault tolerance

Real-time read access by multiple applications

14

Configuration – Data gridGlobal, distributed processing and scale

● Distributed, horizontally scalable, unlimited storage

● Move processing to data with map/reduce

● Low-latency, fast performance

● Eliminate single point of failure

● Multiple access protocols

● Compatible with applications written in any language, any framework

15

Cross datacenterreplicationKey functionality

● Achieve failover with active-passive or active-active

● Synchronous and asychronous replication

● High availability to meet SLA requirements for data within and across datacenters

● Geographic data partitioning with failover

17

Client and serverMultiple access protocols

Protocol Format Client type Smart? Load balance and failover

REST text any no external

Memcached text any no pre-defined

Hot Rod binary Java, C++ yes auto/dynamic

Hot Rod: Infinispan's native TCP client/server protocol

● Hashing and topology aware

● Failover during topology changes

● Smart request routing in partitioned or distributed server clusters

18

Data compatibility modeKey functionality

● Access data regardless of how it was stored

Library mode and client/server mode interoperability

● Data written by a Library mode application can be read over a remote client (and vice versa)

Protocol interoperability

● Data written via one protocol can be read via another protocol

● Example: Write data via the REST protocol and read data via Hot Rod protocol

Cross-language interoperability

● Data written via the C++ Hot Rod protocol can be read by an application via the Java Hot Rod protocol (and vice versa)

Access via Hot Rod

Access via memcached

19

Cache ManagementExpiration - Keep your data fresh

● Removes entries...● Based on time they have been in memory (lifespan

value or maximum idle time value)● Globally (memory, cache stores, cluster...)

● Specified on a per-entry or per-cache basis

20

Cache ManagementEviction – Avoid running out of memory

● Remove entries based on how recently (and often) they are used, and only when too many entries are present

● Remove entries from memory and remain in cluster and persists to cache stores (if a cache store exists)

● On a per node basis

● Strategies● Least Recently Used (LRU) - default● Unordered eviction strategy – recommended for testing

purposes● Low Inter-reference Recency (LIRS)

21

Options for Persistence

● Cache store options

● File Based Cache Store● LevelDB (JNI)● Database (JDBC)● JPA Cache Store (Hibernate)

● Read-through

● If data is not in cache, then read from cache store

● Write-through

● Write to cache store sychronously

● Write-behind

● Write to cache store asychronously

22

JBoss Data GridKey, Value Pairs

23

JBoss Data Grid Marshalling

● Keys are Strings

● Values are typically Java Objects but really can be anything that

● Implements the Java Serializable

● Serialized via a custom Serializer (think Java Externizable)

● Transformed into a String

● XStream● JSON

24

Querying

25

JBoss Data Grid Querying

● Querying API enables you to search for entries in the grid using values instead of keys

● Features include:

● Keyword, Range, Fuzzy, Wild-card, and Phrase queries

● Combining queries

● Sorting, filtering, and pagination of query results

● API is based upon Hibernate Search and Apache Lucene

● Currently supported only in library mode, and Hot Rod (tech preview)

29

JBoss Data Grid Real Time Applications

30

JBoss Data Grid Listeners and Notifications

● Both Cache and CacheManager implement Listenable

● Attach Listeners and receive notifications

● Listen for CRUD Operations

Cache c = cacheManager.getCache(“MyAwesomeCache”);

c.addListener(“MyAwesomeListener”);

...

@Listener (sync=false)

public class MyAwesomeListener {

@CacheEntryCreated

public void print(CacheEntryCreatedEvent event) {System.out.println("New entry " + event.getKey() + " created in the cache");

...

31

JBoss Data Grid Futures

● Listeners can be attached to a NotifyingFuture to notify the user about a completed future

FutureListener futureListener = new FutureListener() {

public void futureDone(Future future) {

try {future.get();

} catch (Exception e) {// Future did not complete successfullySystem.out.println("Help!");

}}

};

cache.putAsync("key", "value").attachListener(futureListener);

...

34

Live updates to your Web Application

● WebSockets

● Standard in HTML 5

● Standard in JEE7

● Full Duplex (two way communication) between Client/Server

● Web Servers easily push updates to Browsers

● Dedicated Connections

● Many Benefits● Full Duplex● Reduced Resources● Scalable● Supported in all modern browsers (Chrome, Firefox, IE, Safari,

Opera)

35

JBoss Data Grid Listeners With WebSockets

● @CacheEntryCreated

● public void sendNewJSON(CacheEntryCreatedEvent event) {

Employee emp = new Employee(event.getValue());

String json = JsonWriter.objectToJson(emp)

session.sendText(new TextMessage(json));

...● Infinispan Web Socket JavaScript Libraries

● Ask for notifications directly on the client!

● Available in community, but not yet supported

● Status is Alpha● Working its way through QA

36

JBoss Data Grid Security

37

JBoss Data Grid Security

● Store confidential and personally identifiable information (PII) securely on the grid

Data Security

● User Authentication

● Role-based access control to caches and cache managers

● Node authentication and authorization

● Encryption of communication between cluster nodes

● Audit logging framework

38

Data Security in JDG 6.3 Design considerations

● Use case: Protect confidential or personally identifiable information (PII) stored on the grid.

● Use popular protocols

● X.509 certificates

● TLS/SSL

● Kerberos

● Use standard Java security frameworks/libraries

● Simple Authentication and Security Layer (SASL)

● Java Authentication and Authorization Service (JAAS)

● Java Secure Sockets Extension (JSSE)

● Java Cryptographic Architecture (JCA)

50

MapReduce

51

MapReduce

● JBoss Data Grid MapReduce model is an adaptation of Google's Map Reduce model

● Generate and process large data sets

● Best suited for handling large data sets in real-time

● Not a one-to-one replacement for Hadoop

● Hadoop is better suited for deeper analytics and analytical processing

● JBoss Data Grid can complement Hadoop solutions in many customer environments

52

JBoss Data Grid Other Cool Stuff

53

JBoss Data Grid is Cool

● JBoss Data Grid fully supports Java Transaction API (JTA) compliant transactions

● Infinispan includes Context and Dependency Injection (CDI)

● Rolling Upgrades now supported in Client/Server Mode (Hot Rod and REST)

● Data Compatibility Mode allows you to read data written in different protocols and interfaces (Write in Hot Rod C++, Read in Python REST)

● Distributed Execution not only through MapReduce but also through the JDK ExecutorService

54

JBoss Data Grid Monitoring

55

Management and administrationRed Hat JBoss Operations Network

● Centralized control for management and administration of all Red Hat JBoss Middleware

● Efficiently monitor JBoss Data Grid performance and availability ● Clearly exposes node state and statistical information needed to manage tens to

hundreds of JBoss Data Grid nodes● Displays information in clear and concise manner

56

JBoss Data Grid Road Map

57

JBOSS DATA GRID ROADMAPSubject to Change

JDG 7

7.0

JDG 6

6.06.0 6.16.1 6.26.2

6.3 (July 2014)● Security –

Authentication/Authorization ● .NET Hot Rod client (Tech Preview)● Support in Karaf and Weblogic● EAP 6 modules

6.4 (Target Jan/Feb 2015)● Remote Querying – Full Support● Clustered listeners● Handling network partitions● Integrate with JBoss Fuse (Camel

component)● Cross Site state transfer ● Remote listeners – Tech Preview

6.36.3

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

6.56.4

6.5 (Target end Q2 CY15)● Remote listeners – Full Support● OpenShift deployment - xPaaS

RED HAT CONFIDENTIAL | ADD NAME58

Questions?


Recommended