Introduction to the WebSphere XD ObjectGrid

Similar documents
WebSphere extreme Scale

purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc.

IBM WebSphere Application Server 8. Clustering Flexible Management

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

In the most general sense, a server is a program that provides information

Caching patterns and extending mobile applications with elastic caching (With Demonstration)

Java Enterprise Edition

JBoss World 2009 Aaron Darcy

<Insert Picture Here> Oracle Application Cache Solution: Coherence

extreme Scale caching alternatives for Bank ATM Offerings

<Insert Picture Here> Oracle Coherence & Extreme Transaction Processing (XTP)

TopLink Grid: Scaling JPA applications with Coherence

Flex Data Services for Component Developers

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro

App Servers NG: Characteristics of The Next Generation Application Servers. Guy Nirpaz, VP R&D and Chief Architect GigaSpaces Technologies

J2EE: Best Practices for Application Development and Achieving High-Volume Throughput. Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003

Postgres Plus and JBoss

MySQL & NoSQL: The Best of Both Worlds

Architecting & Tuning IIB / extreme Scale for Maximum Performance and Reliability

Reactive Microservices Architecture on AWS

Migrating a Classic Hibernate Application to Use the WebSphere JPA 2.0 Feature Pack

CPS 512 midterm exam #1, 10/7/2016

Elastic Caching with IBM WebSphere extreme Scale IBM Redbooks Solution Guide

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

TIBCO StreamBase 10 Distributed Computing and High Availability. November 2017

Introduction to WebSphere Platform Messaging (WPM)

Simplifying Migrations with the WebSphere Application Server Migration Toolkit

Object-relational mapping EJB and Hibernate

MetaMatrix Enterprise Data Services Platform

Data Management in Application Servers. Dean Jacobs BEA Systems

Pragmatic Clustering. Mike Cannon-Brookes CEO, Atlassian Software Systems

Coherence & WebLogic Server integration with Coherence (Active Cache)

Services Oriented Architecture and the Enterprise Services Bus

PNUTS: Yahoo! s Hosted Data Serving Platform. Reading Review by: Alex Degtiar (adegtiar) /30/2013

Not just an App. Server

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi)

Introduction to WebSphere Platform Messaging (WPM)

<Insert Picture Here> Value of TimesTen Oracle TimesTen Product Overview

Writing Portable Applications for J2EE. Pete Heist Compoze Software, Inc.

<Insert Picture Here> MySQL Web Reference Architectures Building Massively Scalable Web Infrastructure

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Improve and Expand JavaServer Faces Technology with JBoss Seam

A memcached implementation in Java. Bela Ban JBoss 2340

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems

Couchbase Architecture Couchbase Inc. 1

Scaling Out Tier Based Applications

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve


DAHA AKILLI BĐR DÜNYA ĐÇĐN BĐLGĐ ALTYAPILARIMIZI DEĞĐŞTĐRECEĞĐZ

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's

How Cloud is working as a disruptor to shake up middleware design EVOLVE OR DIE! Billy Newport

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

<Insert Picture Here> MySQL Cluster What are we working on

Developing Applications with Java EE 6 on WebLogic Server 12c

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Migrating traditional Java EE applications to mobile

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

NetBeans IDE Field Guide

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Supports 1-1, 1-many, and many to many relationships between objects

TrueSight 10 Architecture & Scalability Q&A Best Practice Webinar 8/18/2015

WHAT IS EJB. Security. life cycle management.

JVA-163. Enterprise JavaBeans

XTP, Scalability and Data Grids An Introduction to Coherence

Large-Scale Web Applications

Mastering SOA Challenges more cost-effectively. Bodo Bergmann Senior Software Engineer Ingres Corp.

Seam 3. Pete Muir JBoss, a Division of Red Hat

IBM Bluemix Session Cache Service Migration Guide. V1.1 April 24, 2017

What is it? What does it do?

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2015 Lecture 14 NoSQL

XML Gateway. Factsheet. J System Solutions. Version 1.1

ClearPath Secure Java Overview For ClearPath Libra and Dorado Servers

JavaOne Topics. Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations

Hibernate OGM. Michal Linhard Quality Assurance Engineer, Red Hat. Red Hat Developer Conference February 17 th, 2012

Griddable.io architecture

Market leading web application server product

Oracle Developer Day

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Space Details. Available Pages

Vendor: SUN. Exam Code: Exam Name: SUN Certified ENITRPRISE ARCHITECT FOR J2EE(tm)TECHNOLOGY. Version: Demo

How WLM routing and HA Manager work together in WebSphere Application Server ND

AC : EXPLORATION OF JAVA PERSISTENCE

Erik Dörnenburg JAOO 2003

High Availability for IBM FileNet Content Engine on WebSphere Application Server

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Red Hat JBoss Enterprise Application Platform 7.2

Java Training For Six Weeks

Introduction to reactive programming. Jonas Chapuis, Ph.D.

Tools to Develop New Linux Applications

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Wasser drauf, umrühren, fertig?

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

SPEC Enterprise Java Benchmarks State of the Art and Future Directions

Java SE7 Fundamentals

Distributed Databases

MongoDB Introduction and Red Hat Integration Points. Chad Tindel Solution Architect

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

Transcription:

IBM Software Group Introduction to the WebSphere XD ObjectGrid Alan Chambers IBM Consulting IT Specialist alan_chambers@uk.ibm.com WebSphere User Group (UK) 4 th March 2008 2007 IBM Corporation

Introduction Do you... Have applications that require very high speed access to large quantities of data, for which traditional databases simply aren t fast enough? Need to cache data from a database or other back-end that needs to be accessed at speeds that would otherwise be unattainable? Have a compute intensive application that can be broken up into multiple parts, executing in parallel on different data? Need to propagate application data rapidly between remote locations faster than traditional database replication? Even if not, do you... like really cool technology? like having something technically interesting to play with? admire software that is small and has no UI and no pre-reqs?

Drivers for ObjectGrid Businesses are demanding from applications: faster response times more consistent response times linear scaling Classic stateless approaches really just push the problem somewhere else, i.e. a database or backend system. With normal cache approaches: wasteful copies of cached data stored in every server caches require invalidation logic to remove stale copies servers always start with a cold cache and as a result spike the backend at startup. Businesses are requiring constant millisecond level responses as applications scale from a couple of servers to hundreds or even thousands of servers.

Some industry trends Extreme transaction processing applications are characterized by exceptionally demanding requirements and complex, distributed architectures. Gartner, 13 th February 2007 we believe that OLTP should be considered a main memory market, if not now then within a very small number of years. Consequently, the current RDBMS vendors have disk oriented solutions for a main memory problem. In summary, 30 years of Moore s law has antiquated the disk-oriented relational architecture for OLTP applications. Stonebraker et al, 2008

What is ObjectGrid? A flexible framework for realizing high performance, scalable and data-intensive applications New York San Francisco London Shanghai It can be used as a very powerful cache that scales from simple inprocess topologies to powerful distributed topologies. It can be used as a form of in memory database to manage application state (and it scales to 1000 s of servers). This is sometimes referred to as Distributed Application State Management. It can be used as a platform for building powerful Data Grid applications.

Last Generation in-memory databases Traditional in-memory databases look very conventional. You set up a static pair and it replicates between them It provides a shared memory link to allow local access to the memory. They leave all the hard work to the customer. What if I need 500 servers? Do I have to set it up myself? If I add servers does it go faster? Does it understand data centers etc? What if I move my server to a new IP? Are clients impacted? It costs how much?

ObjectGrid is different Advanced replication capabilities Grid based programming patterns (Map Reduce) are supported allow the full power of the grid to be used to process large quantities of data at memory speeds with little change in response time as the grid grows. ObjectGrid stores transactional data in exactly one place and support N copies of various quality levels. reference data distributed throughout the grid Business logic can also run against copies for additional scalability for read based traffic. Automatic policy driven placement and built-in high availability leads to massive TCO reduction compared with traditional disk or memory based databases.

Dependencies It has no WebSphere dependency and works with Current and older versions of WebSphere competitive application servers. Straight J2SE (1.4.2 or higher) Eclipse RCP. While ObjectGrid is self contained it requires an external framework for installing applications and start/stop the JVMs hosting those applications. WebSphere XD WebSphere ND WebLogic, JBoss Third party grid management software

A closer look at ObjectGrid

ObjectGrid within a single JVM Data held in same process as application App 1 Can be replicated via JMS to other ObjectGrids in other processes Account Bal ObjectMap 0007 $3294.10 Can be loaded from/persisted to a backend 0012 0015 $673.45 $242.97 JMS 0017 $123.87 0023 $299.01 EIS 10

ObjectGrid in Client/Server mode Account Bal Backing Map App 1 0001 0002 $254.23 $23.66 Account Bal ObjectMap 0007 $3294.10 0012 $673.45 0015 $242.97 App 2 Account Bal ObjectMap 0004 $179.21 0007 $3294.10 0015 $242.97 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 $356.21 $179.21 $95.27 $1004.28 $3294.10 $125.63 $857.65 $12.58 $412.48 $673.45 $76.11 $756.19 $242.97 $633.10 $81.75 Data spread over n servers 0018 $782.56 11

DataGrid data & processing co-located Account Bal Backing Map Application App Logic App Logic App Logic 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 $254.23 $23.66 $356.21 $179.21 $95.27 $1004.28 $3294.10 $125.63 $857.65 $12.58 $412.48 $673.45 $76.11 $756.19 $242.97 $633.10 Data and processing spread over n servers 0017 $81.75 0018 $782.56 12

Ease of integration It works with the application server you already have. Older versions of WebSphere. Other application servers. Spring Framework Typically there will be existing integration points to add ObjectGrid with minimal or no impact on the existing applications. Object Relational Mapper second level cache (ORMapper, Hibernate, CMP). ESB Mediation HTTP server filters for session management. ObjectGrid APIs are simple and easy to learn: Java Collections API EntityManager (POJO with relationship) based API Transactional integration ObjectGrid has hooks to allow it to integrate with third party transaction frameworks. This means that the begin/commit/rollback calls are integrated with the application container transaction and do not need to be called by the application.

Partitioning and Replication Data is partitioned based on the map key Hashing algorithm can default or you can provide one all you have to do is specify the number of partitions Too many may mean some overhead Too few limits the number of ObjectGrid containers you can run Data is replicated synchronously and/or asynchronously For resilience if a container (i.e. JVM) fails Location of replicas is always different from the primary partition Synchronous replicas always updated within the transaction Asynchronous replicas update (slightly) later, so may not be 100% up to date (milliseconds usually) Each Primary Partition, Sync replica and Async replica is known as a Shard Zones support enables control of replica location E.g. for geographic failover ObjectGrid tries to balance distribution of shards across available container Moving shards as necessary, as containers are added or removed

Horizontal Scale-out and Scale-in Scale-Out As new servers are added then shards are migrated from overloaded servers to the new servers. The new server registers with the catalog service and the catalog service then starts sending migration instructions to the existing servers. Scale-In As servers fail then shards are also moved around to balance the system. Shards can even be removed to ensure system stability if the grid drops below a certain size.

Partitioning: 13 partitions, 3 servers App 1 Applications Applications OG Client OG Client OG Client Partition 1 Partition 2 Partition 3 Partition 4 A,B C,D E,F G,H Partition 5 Partition 6 Partition 7 Partition 8 I,J K,L M,N O,P Partition 9 Partition 10 Partition 11 Partition 12 Partition 13 Q,R S,T U,V W,X Y,Z

Partitioning: 13 partitions, 4 servers App 1 Applications Applications OG Client OG Client OG Client Partition 1 Partition 2 Partition 3 A,B C,D E,F Partition 5 Partition 6 Partition 7 I,J K,L M,N Partition 9 Partition 10 Partition 11 Partition 12 Q,R S,T U,V W,X Partition 4 Partition 8 Partition 13 G,H O,P Y,Z

XML Configuration files Located on classpath or in a well known folder in an EJB or WEB module. Objectgrid.xml Lists each Map Specifies path to entity.xml Specifies plugins for maps and grid. Entity.xml Lists each entity Schema fetched via reflection from annotations on classes or specified in xml file. Deployment.xml describes: Number of partitions Number and type of replicas Placement rules <?xml version="1.0" encoding="utf-8"?> <objectgridconfig xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://ibm.com/ws/objectgrid/config../objectgrid.xsd" xmlns="http://ibm.com/ws/objectgrid/config"> <objectgrids> <objectgrid name="myobjectgrid"> <backingmap name="mybackingmap01" /> </objectgrid> </objectgrids> </objectgridconfig> <?xml version="1.0" encoding="utf-8"?> <deploymentpolicy xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://ibm.com/ws/objectgrid/deploymentpo licy../deploymentpolicy.xsd" xmlns="http://ibm.com/ws/objectgrid/deploymentpolicy"> <objectgriddeployment objectgridname="myobjectgrid"> <mapset name="mymapset" numberofpartitions="20" minsyncreplicas="1" maxsyncreplicas="1" maxasyncreplicas="1" numinitialcontainers="3"> <map ref="mybackingmap01" /> </mapset> </objectgriddeployment> </deploymentpolicy>

WebSphere integration Configuration files can be hosted in a module and detected automatically Catalog service automatically started within a cell Cells can share a catalog service thus allowing a single grid to span N cells and scale as well as span data centers HTTP Session support A servlet filter allows ObjectGrid to act as a HTTP session manager for a servlet container. Full zone support is available for advanced replication topologies.

ObjectGrid Application Programming Model Map EntityManager Based on the Java Map interface, extended to allow operations to be grouped into transactional blocks Allows a set of keywords to be associated with a key Allows graphs of objects to be annotated with metadata and be both read from and written to the grid Each entity/object in the graph corresponds to a Map; ObjectGrid automatically maintains relationships and detects changes to those objects The programmer simply says to persist the graph to the grid, or retrieve the graph from the grid

ObjectMap API Sample Session session = grid.getsession(); session.begin(); ObjectMap personmap = session.getmap("person"); Person billy = (Person) personmap.get("billy Newport"); billy.city = "Wexford"; Person child = new Person("Baby Newport"); child.fatherkey = billy.getkey(); billy.childrenkeys.add(child.getkey()); personmap.put(billy.getkey(), billy); personmap.insert(child.getkey(), child); session.commit(); public class Person implements Serializable { // References are keys, not object refs String key; String fatherkey; String motherkey; ArrayList<String> childrenkeys; }

EntityManager API Sample EntityManager em = grid.getsession().getentitymanager(); em.gettransaction().begin(); Person billy = (Person) em.find(person.class, "Billy Newport"); billy.city = "Wexford"; Person child = new Person("Baby Newport"); child.father = billy; billy.children.add(child); em.gettransaction().commit(); @Entity public class Person { @Id String key; @OneToOne(cascade=CascadeType.PERSIST) Person father; @OneToOne(cascade=CascadeType.PERSIST) Person mother; @OneToMany(cascade=CascadeType.PERSIST) Collection<Person> children; }

Query Support Built-in query engine for querying POJOs or Entities. Familiar, rich query language syntax for executing SELECT queries. Objects/Entity attributes can be indexed for performance. Supports: Named and Positional Parameters Pagination Joins Nested queries Path expressions Index utilization

Stream Query Stream queries allow querying over temporal results For example: Fetch the top 10 performing items in the catalog over the last 60 minutes. Query the 50 stocks with the highest transaction volumes over the last 5 minutes Query the average of 30 longest transaction time over the last 5 minutes Query the 10 longest average transaction time for each transaction type over the last hour The result is continuously updated in real time. The result is stored as another Map in the ObjectGrid and can be used exactly as any other Map including replicate it to clients. 24

Applications for ObjectGrid

Slides removed here sorry!

And now for a demo... 27

ObjectGrid WebSphere Software A flexible framework for realizing high performance, scalable and data-intensive applications extreme Transaction Processing New York San Francisco London Shanghai A very powerful and scalable cache A form of in memory database A platform for building powerful Data Grid applications.

More info? WebSphere Software Download a fully functional ObjectGrid demo copy: http://www.ibm.com/developerworks/downloads/ws/wsdg/learn.html?s_tact=105agx10&s_cmp=jrnl The only limitation is you are forced to restart your servers from time to time My Getting started with ObjectGrid article: http://www.ibm.com/developerworks/websphere/techjournal/0711_chambers/0711_chambers.html Highly scalable grid-style computing and data processing with the ObjectGrid component of WebSphere Extended Deployment http://www.ibm.com/developerworks/websphere/techjournal/0712_marshall/0712_marshall.html Another tutorial Building Grid Ready Applications with ObjectGrid : http://www.ibm.com/developerworks/edu/wes-dw-wes-objectgrid.html The ObjectGrid documentation wiki: http://www.ibm.com/developerworks/wikis/display/objectgrid/getting+started XTP Platforms: Ready to Make their Mark - Derrick Harris, Grid Today, Feb 2008 http://www.gridtoday.com/grid/2135376.html Is XTP just about memory based replication? No, it isn t and here's why - Billy Newport, Feb 2008 http://www.devwebsphere.com/devwebsphere/2008/02/is-xtp-just-abo.html 29