Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here>

Similar documents
<Insert Picture Here> QCon: London 2009 Data Grid Design Patterns

Coherence An Introduction. Shaun Smith Principal Product Manager

<Insert Picture Here>

XTP, Scalability and Data Grids An Introduction to Coherence

<Insert Picture Here> Oracle Application Cache Solution: Coherence

Craig Blitz Oracle Coherence Product Management

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

Coherence & WebLogic Server integration with Coherence (Active Cache)

Oracle and Tangosol Acquisition Announcement

TopLink Grid: Scaling JPA applications with Coherence

<Insert Picture Here> A Brief Introduction to Live Object Pattern

<Insert Picture Here>

Understanding Oracle RAC ( ) Internals: The Cache Fusion Edition

WLS Neue Optionen braucht das Land

EBOOK DATABASE CONSIDERATIONS FOR DOCKER

Advanced HTTP session management with Oracle Coherence

<Insert Picture Here> Getting Coherence: Introduction to Data Grids Jfokus Conference, 28 January 2009

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Scaling Out Tier Based Applications

Building Highly Available and Scalable Real- Time Services with MySQL Cluster

2008 WebSphere System z Podcasts - Did you say Mainframe?

WebLogic & Oracle RAC Active GridLink for RAC

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

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

Data-and-Compute Intensive Processing: Middle-tier or Database? Trade-Offs and Case Study. Kuassi Mensah Marcelo Ochoa Oracle

MySQL Architecture Design Patterns for Performance, Scalability, and Availability

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

1Z Oracle Application Grid 11g Essentials Exam Summary Syllabus Questions

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

status Emmanuel Cecchet

Maximum Availability Architecture: Overview. An Oracle White Paper July 2002

Putting Oracle Database 11g to Work for Java. Kuassi Mensah Group Product Manager, Java Platform Group db360.blogspot.com

Oracle WebLogic Server 12c: Administration I

ebay s Architectural Principles

What every DBA needs to know about JDBC connection pools Bridging the language barrier between DBA and Middleware Administrators

Low Latency Data Grids in Finance

A RESTful Java Framework for Asynchronous High-Speed Ingest

Massive Scalability With InterSystems IRIS Data Platform

MySQL & NoSQL: The Best of Both Worlds

Datacenter replication solution with quasardb

MySQL High Availability. Michael Messina Senior Managing Consultant, Rolta-AdvizeX /

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

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

Inside GigaSpaces XAP Technical Overview and Value Proposition

Oracle Fusion Middleware 12c

Best Practices for Scaling Websites Lessons from ebay

MySQL Cluster for Real Time, HA Services

X100 ARCHITECTURE REFERENCES:

Upgrade Your MuleESB with Solace s Messaging Infrastructure

About Terracotta Ehcache. Version 10.1

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

WebSphere extreme Scale

Service Mesh and Microservices Networking

MySQL Cluster Web Scalability, % Availability. Andrew

Javaentwicklung in der Oracle Cloud

02 - Distributed Systems

02 - Distributed Systems

Oracle Exadata: Strategy and Roadmap

Designing Fault-Tolerant Applications

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio)

ebay Marketplace Architecture

B. Pack -domain=c:\oracle\user_projects\domains\mydomain.jar -template=c:\oracle\userj:emplates\mydomain -template_name=nmy WebLogic Domain"

<Insert Picture Here> Oracle NoSQL Database A Distributed Key-Value Store

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

Real Time Summarization. Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Consolidate and Prepare for Cloud Efficiencies Oracle Database 12c Oracle Multitenant Option

Assignment 5. Georgia Koloniari

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. reserved. Insert Information Protection Policy Classification from Slide 8

Monday, November 21, 2011

A memcached implementation in Java. Bela Ban JBoss 2340

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

Microservices with Red Hat. JBoss Fuse

Oracle Database Exadata Cloud Service Exadata Performance, Cloud Simplicity DATABASE CLOUD SERVICE

Everything You Need to Know About MySQL Group Replication

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Focus On: Oracle Database 11g Release 2

White Paper. Major Performance Tuning Considerations for Weblogic Server

Diplomado Certificación

Oracle Corporation

It also performs many parallelization operations like, data loading and query processing.

Oracle WebLogic Devcast Series: JMX for DevOps. Dr. Frank Munz ORACLE PRODUCT LOGO

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

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8

Backup and archiving need not to create headaches new pain relievers are around

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

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

IN-MEMORY DATA FABRIC: Real-Time Streaming

Factsheet of Public Services Infrastructure (PSi) Updated on: 1st Sep 03

Introduction. Architecture Overview

<Insert Picture Here> Forms Strategies: Modernizing Your Oracle Forms Investment

Administering WebLogic Server on Java Cloud Service I Ed 1 Coming Soon

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

Oracle Fusion Middleware 12c Cloud Application Foundation You Video Series

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

Using Virtualization to Reduce Cost and Improve Manageability of J2EE Application Servers

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Transcription:

<Insert Picture Here> Pimp My Data Grid Brian Oliver Senior Principal Solutions Architect (brian.oliver@oracle.com) Oracle Coherence Oracle Fusion Middleware

Agenda An Architectural Challenge Enter the Data Grid Architectural Patterns that Limit Application Scalability Pimping Data Grid Service Grids Trading Exchange Agile Groovy Grid Unstoppable Spring (c) Copyright 2007. Oracle Corporation

An Architectural Challenge

Scale this... Domain: Retail Banking Infrastructure Over 500 Banks 100,000+ Teller Staff Desktops Applications 10,000+ Cash Machines (ATMs) 10,000,000 s of Internet Banking Transactions/day Current Infrastructure Java SE based (no J2EE apart from Servlets) Oracle RAC (not an issue scaling across a WAN ) Messaging (serious challenges) Processing Business Tasks (challenges approaching) 30,000,000+ Business Tasks a day minimum. must do 100,000,000 effortlessly per/day before going live (c) Copyright 2007. Oracle Corporation

Scale this... Execution of Business Tasks Account Balance, Credit/Debit, Funds Transfer, Statement Processing, Batch Processing, Payment Processing Tasks arrive from a variety of clients (thin, rich, crossplatform, mainframes...) variety of languages Goal: Tasks are executed by the cloud Don t want to build own cloud software The Cloud Their knowledege: Massive experience in scale-out. Could build it themselves, but budget (time/resources/money) will be saved by buying. (c) Copyright 2007. Oracle Corporation

Essentially want interface Cloud { public <T> Future<T> execute(task<t> task); } (c) Copyright 2007. Oracle Corporation

Constraints... No Single Points of Failure No Simple Points of Bottleneck No Service Registries No Masters + Workers already got one that is partitioned into over 200 separate clusters No Manual Partitioning Keep everything in Memory Active + Active Sites Across WAN Develop system on a note book Scale to over 500 servers No reconfiguration outages No byte-code manipulation / proxies No Data or Task Loss During failure During server upgrade During scale out No Transactions (XA) Support multiple versions Predictable response times Predictable scale out costs Manage via JMX, from any point in the Cloud. Pure Java Standard Edition Infrastructure add a maximum of 3ms latency to tasks. Integrate with existing applications (Java 1.4.2+) (c) Copyright 2007. Oracle Corporation

Enter the Data Grid

Enter the Data Grid Data Grid Horizontally scalable in-memory data management Goal Eliminate data source contention by scaling out data management with commodity hardware Underlying Philosophies Keep data in the application-tier (where it s used) Disks are slow and databases are evil Data Grids will solve your application scalability and performance problems

Essentially replace this

With this Note to Marketing: Replace Cloud with Data Grid, Distributed Cache, Data Fabric, Information Fabric, Network Attached Storage, Java Space, Service Grid, Compute Grid, Object Grid, Shared Memory or other term

Success!

What s inside the Cloud?

Architectural Patterns that Limit Scalability

Client + Server Pattern Server is point of contention Contention increases Server response time = increased Client latencies Client scale-out increases contention Not just Database related. Consider Store-and-Forward messaging systems and Spaces The server may be a switch Lesson: Avoid Single Points of Contention / Bottleneck (SPOB)

Master + Worker Pattern Master is point of contention Contention increases Master response time = increases Worker (and requestor) Latencies Scale-out increases contention Lesson: Avoid Single Points of Contention / Bottleneck (SPOB)

Master + Worker Pattern Reality... Typically Master + Worker actually is also Client + Server! Lesson: Avoid patterns with SPOB!

Master + Worker Pattern Continued... Typically Master + Worker actually is also Client + Server! Often the driving requirement for Data Grid in a Compute Grid Lesson: Avoid patterns with multiple SPOB!

Increasing Resilience Increasing resilience increases latency Synchronously maintained resilience typically doubles latencies Asynchronously maintained resilience will always introduce data integrity issues Lesson: Resilience rarely has zerolatency properties Lesson: Resilience Persistence

Partition for Parallelism Partition Data onto separate Masters to provide load-balancing and increase parallelism Not easy, especially if access patterns are dynamic and load is uneven Joins become very difficult, but queries work in parallel Lesson: Hot spots are inevitable Lesson: Partition failure may corrupt state. RAID is a better partitioning strategy Lesson: Avoid registries to locate data/services (ie: Masters)

Summary Avoid Single Points of Contention Avoid Single Points of Failure Avoid Client + Server Avoid Master + Worker Active + Active better than Active + Passive Ensure fair utilization of resources Resilience increases latency Resilience Persistence Resilience = Redundancy RAID is a good pattern XML is not great Interoperability is best achieved at the binary level (hardest, but best) Avoid moving data Exploit Data Affinity Data + Data and Data + Compute Deploy code everywhere It s smaller Dynamic code deployment is dangerous in transactional systems Exploit Parallelism Partition Data for Parallelism Hot Spots are unavoidable Pipeline architectures help significantly Use Caching to reduce I/O Cache Coherency is not free Cache Coherency is essential for Data Integrity Understand the underlying implementation of solutions!

Achieving Scalability and High Performance means... 1. Doing something completely different architecturally... including inside the Cloud. 2. Avoiding patterns that limit scalability or performance 3. Ensuring each architectural component (from external) providers avoids the limiting patterns = knowing the internals of the provided solutions

What about Coherence? (c) Copyright 2007. Oracle Corporation

Oracle Coherence Provides Container-less peer-to-peer Clustering of Java Processes Data Structures to manage Data across a Cluster / Grid Other Stuff Real-Time Event Observation Listener Pattern Materialized Views of Data Continuous Queries Parallel Queries and Aggregation Object-based Queries Parallel Data Processing Parallel Grid Processing RemoteException Free Distributed Computing Clustered JMX MAN + WAN Connectivity

Oracle Coherence Development Toolkit Pure Java 1.4.2+ Libraries Pure.Net 1.1 and 2.0 (Client Libraries) No Third-Party Dependencies No Open Source Dependencies No Masters No Registries Other Libraries for Database and File System Integration Top Link and Hibernate Http Session Management, Spring,

Oracle Coherence Some uses Caching state in the Application-tier Relieve load on lower-tier systems Databases, Mainframes, Web Servers, Web Services Reliably managing Application state in the Application-tier Scaling out application state (in the application-tier) In-Memory Http Session Management Reliable and Automatically Partitioned Grid Processing Temporary System of Record for Extreme Transaction Processing

Coherence Demonstration (c) Copyright 2007. Oracle Corporation

Pimping Oracle Coherence...

Strategy Business Tasks are regular Java objects (pojo) Place Business Tasks into Coherence Coherence dynamically distributes Tasks across the Cluster Tasks are resilient in the Cluster May use affinity to ensure related Tasks processed together Register Backing Map Listeners in the Cluster members to execute Tasks Scaling out Coherence = Scaling out Task Processing

Backing Map Listener is what? Coherence distributes, manages and stores state (objects) using Backing Maps Backing Map... Class that is responsible for managing state. Can be replaced to change how state is managed. Eg: in heap, off heap, hibernate, BDB, toplink, wan, file system, memory mapped files across a wan. May be replaced, composed and customized. Backing Map Listener... Class that receives data events from Backing Maps

Strategy As Tasks enter the Cloud Coherence notifies BML Our BML implementation schedules, manages, executes the Tasks (using Java 5 Executor) Cleans up Tasks when executed Deals with Task recovery (idempotent with status) BML is written in standard Java No Transactions Fault Tolerant Distributed + Scalable + Event Driven Architecture

Backing Map Listener Code public class ExampleBackingMapListener extends AbstractMultiplexingBackingMapListener { public ExampleBackingMapListener(BackingMapManagerContext context) { super(context); } System.out.println("Created our ExampleBackingMapListener"); @Override protected void onbackingmapevent(mapevent mapevent, Cause cause) { System.out.println("Cause:" + cause + ", Event:" + mapevent); } }

Backing Map Listener Configuration <distributed-scheme> <scheme-name>distributed-cache-scheme</scheme-name> <backing-map-scheme> <local-scheme> <listener> <class-scheme> <class-name>examplebackingmaplistener</class-name> </class-scheme> </listener> </local-scheme> </backing-map-scheme> </distributed-scheme>

Results While submitting Tasks (regular system load) Test 1: Scale from 1 server to over 400 No reconfiguration Test 2: Randomly kill servers No reconfiguration Test 3: Kill 1, 2, 4, 8, 16, 32, 64, 128, 160 servers at once Any data loss? Can it be identified? Possible 1,200,000,000 Tasks execution capacity per/day Client may reduce current hardware by 75%

Trading Exchange

Trading Exchange Similar requirements and constraints Order processing (Foreign Exchange) 1,000 s per second (initial) per currency pair No manual partitioning No transactions 10ms max latency for full accept, validate, match, respond Achieved with Coherence using BMLs (< 3ms) 14 weeks development (start to go live)

Previous Next Generation Approach (failed to meet SLA s)

Current Solution

Pimp my Data Grid

Pimp it! Most Data Grids, especially Coherence are a fully pluggable Coherence provides peer-to-peer JVM clustering, resilient data management with events to support distributed EDA. You re generally only limited by your creativity

Pimp it with Groovy Instead of building object-based queries, why not use Groovy expressions? Eg: Filters, Queries and Agents are completely customizable in Coherence new GroovyFilter( entry.value in [...] ); Serious projects are looking to use Groovy across the Data Grid to provide processing agility

Pimp it with Spring Instead of Spring wrapping your Data Grid, embed Spring applications in a Data Grid to; Virtualize them Make then resilient to failure Scale them out Coherence is pure Java, so it plays well with Spring Use Coherence as clustering infrastructure for Spring make it unstoppable

Getting Oracle Coherence

Oracle Coherence Search: http://search.oracle.com Search For: Coherence Download http://www.oracle.com/technology/products/coherence

Thanks (c) Copyright 2007. Oracle Corporation

Appendix

The preceding is intended to outline general product use and direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle.