Data Grid Patterns Brian Oliver | Global Solutions Architect | Oracle Corporation | JBFOne 2008.

Slides:



Advertisements
Similar presentations
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Advertisements

Introduction to DBA.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Distributed components
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Copyright ©2009 Opher Etzion Event Processing Course Engineering and implementation considerations (related to chapter 10)
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Module 14: Scalability and High Availability. Overview Key high availability features available in Oracle and SQL Server Key scalability features available.
1 Copyright © 2009, Oracle. All rights reserved. Exploring the Oracle Database Architecture.
Computer Measurement Group, India Reliable and Scalable Data Streaming in Multi-Hop Architecture Sudhir Sangra, BMC Software Lalit.
Word Wide Cache Distributed Caching for the Distributed Enterprise.
An Engineer’s Introduction to Oracle Coherence Brian Oliver Senior Principal Solutions Architect | Oracle.
Oracle Coherence Product Overview Raanan Dagan / Coherence Team.
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
By Lecturer / Aisha Dawood 1.  You can control the number of dispatcher processes in the instance. Unlike the number of shared servers, the number of.
Distributed Systems: Concepts and Design Chapter 1 Pages
1 Moshe Shadmon ScaleDB Scaling MySQL in the Cloud.
Message Oriented Communication Prepared by Himaja Achutha Instructor: Dr. Yanqing Zhang Georgia State University.
CERN IT Department CH-1211 Genève 23 Switzerland t Internet Services Overlook of Messaging.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
Server to Server Communication Redis as an enabler Orion Free
Fast Crash Recovery in RAMCloud. Motivation The role of DRAM has been increasing – Facebook used 150TB of DRAM For 200TB of disk storage However, there.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
MSE Portfolio Presentation 1 Doug Smith November 13, 2008
Copyright © 2006, GemStone Systems Inc. All Rights Reserved. Increasing computation throughput with Grid Data Caching Jags Ramnarayan Chief Architect GemStone.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Dispatching Java agents to user for data extraction from third party web sites Alex Roque F.I.U. HPDRC.
Distributed Computing Systems CSCI 4780/6780. Scalability ConceptExample Centralized servicesA single server for all users Centralized dataA single on-line.
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT By Jyothsna Natarajan Instructor: Prof. Yanqing Zhang Course: Advanced Operating Systems.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Features Scalability Manage Services Deliver Features Faster Create Business Value Availability Latency Lifecycle Data Integrity Portability.
Mick Badran Using Microsoft Service Fabric to build your next Solution with zero downtime – Lvl 300 CLD32 5.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
INTRODUCTION TO GRID & CLOUD COMPUTING U. Jhashuva 1 Asst. Professor Dept. of CSE.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
SysPlex -What’s the problem Problems are growing faster than uni-processor….1980’s Leads to SMP and loosely coupled Even faster than SMP and loosely coupled.
Last Class: Introduction
Replicated LevelDB on JBoss Fuse
Distributed Cache Technology in Cloud Computing and its Application in the GIS Software Wang Qi Zhu Yitong Peng Cheng
Introduction to Load Balancing:
Integrating HA Legacy Products into OpenSAF based system
Open Source distributed document DB for an enterprise
Operating Systems (CS 340 D)
Maximum Availability Architecture Enterprise Technology Centre.
Software Connectors.
Distribution and components
An Engineer’s Introduction to Oracle Coherence
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
Exploring Azure Event Grid
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT -Sumanth Kandagatla Instructor: Prof. Yanqing Zhang Advanced Operating Systems (CSC 8320)
Azure Event Grid with Custom Events
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
Time Gathering Systems Secure Data Collection for IBM System i Server
Design pattern for cloud Application
Distributed computing deals with hardware
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Message Queuing.
J2EE Lecture 13: JMS and WebSocket
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
Database System Architectures
#01 Client/Server Computing
Presentation transcript:

Data Grid Patterns Brian Oliver | Global Solutions Architect | Oracle Corporation | JBFOne 2008

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

Introduction to Data Grids A Data Grid is a data management system for application objects Application objects are managed across multiple servers (typically stored in memory) Essential for Applications that require low response time very high throughput predictable scalability continuous availability information reliability

Introduction to Data Grids Data management system Is it a Container? Can it be Embedded? Application objects What languages? Not necessarily relational! Query support? Shared across multiple servers Architecture? How are the servers coordinated? How are the servers organized? Low response time Seconds? Milliseconds? Microseconds?

Introduction to Data Grids Very high throughput? Transactions or Operations Per Second? MB per Second? Predictable scalability Accurately predict future resources based on current utilization Continuous availability During failure, recovery, scale-out, upgrades? Information reliability Consistency? Isolation? Durability? Persistence?

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

Introduction to Oracle Coherence Peer-to-Peer Clustering No Single Points of Failure No Single Points of Bottleneck No Masters / Slaves / Registries etc All members have responsibility to; Manage Cluster Health & Data Perform Processing and Queries Work as a “team” in parallel Communication is point-to-point (not TCP/IP) and/or one-to-many Scale to limit of the back-plane Use with commodity infrastructure Linearly Scalable By Design

Introduction to Oracle Coherence Data is automatically partitioned and load-balanced across the Server Cluster Data is synchronously replicated for continuous availability Servers monitor the health of each other When in doubt, servers work together to diagnose status Healthy servers assume responsibility for failed server (in parallel) Continuous Operation: No interruption to service or data loss due to a server failure

Introduction to Oracle Coherence Dynamically scale-out during operation Data automatically load-balanced to new servers in the cluster No repartitioning required No reconfiguration required No interruption to service during scale-out Scale capacity and processing on-the-fly

Introduction to Oracle Coherence Software Development Library Pure Java 1.4.2+ (data grid) Pure .Net 1.1 and 2.0 (client) Pure C++ (client) No Third-Party Dependencies No Open Source Dependencies Proprietary Network Stack (Peer-To-Peer model) Other Libraries Support… Database and File System Integration Top Link and Hibernate Http Session Management

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

Introduction to Data Grid Patterns Implementations of traditional patterns, but on a Data Grid! Inter-process Architectural Patterns The Command Pattern The Functor Pattern The Task Executor Pattern Intra-process Architectural Patterns Store and Forward Messaging Push Replication The Coherence Incubator http://coherence.oracle.com/display/INCUBATOR Example Implementations, Source Code, Documentation

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

The Command Pattern: Definition An action to be performed zero or more times at some point in the future should be represented as an object called a Command All necessary parameters required to perform the said action, should be encapsulated as attributes with in the said Command object The Command object must provide a mechanism to perform the action (typically represented an execute method defined on the said Command object)

The Command Pattern: Extended Semantics (for Data Grids) A Command may only be executed within the scope of a target object, called a Context To execute a Command it must be submitted to a Context Once submitted, Commands are executed asynchronously Commands are executed one-at-a-time, in the order in which they are submitted A Command may not return a value to the application that submitted the said Command (for this use the Functor Pattern)

Command Pattern Demonstration

The Command Pattern: How it works! Step 1: The Initial Environment

The Command Pattern: How it works! Step 2: Creating a Context

The Command Pattern: How it works! Step 3: Registering a Context

The Command Pattern: How it works The Command Pattern: How it works! Step 4: Command Executor Established (automatic)

The Command Pattern: How it works! Step 5: Creating a Command

The Command Pattern: How it works! Step 6: Submitting a Command

The Command Pattern: How it works The Command Pattern: How it works! Step 7: Submitted Commands are Queued (automatic)

The Command Pattern: How it works The Command Pattern: How it works! Step 8: Submitted Commands are Executed (automatic)

The Command Pattern: How it works The Command Pattern: How it works! Step 9: Executed Commands are Removed (automatic)

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

The Functor Pattern: Definition Just like the Command Pattern … An action to be performed zero or more times at some point in the future should be represented as an object called a Functor All necessary parameters required to perform the said action, should be encapsulated as attributes within the said Functor object The Functor object must provide a mechanism to perform the action (typically represented an execute method defined on the said Functor object) The result of a Functor execution is returned to the submitter using a Java 5+ Future<?>

Functor Pattern Demonstration

The Functor Pattern: Definition Just like the Command Pattern … An action to be performed zero or more times at some point in the future should be represented as an object called a Functor All necessary parameters required to perform the said action, should be encapsulated as attributes with in the said Functor object The Functor object must provide a mechanism to perform the action (typically represented an execute method defined on the said Functor object) Additional Requirement The result of a Functor execution is returned to the submitter using a Java 5+ Future<?>

Agenda Introduction to Data Grids Introduction to Oracle Coherence Introduction to Data Grid Patterns The Command Pattern The Functor Pattern Vorstellung der Thematik Distributed Cache Funktionsweise anhand von Coherence wird erklärt Die Ideen bezüglich Distributed Cache werden vorgestellt: Ikesa cache Verwendung Grid anstatt AQ Die Servicewolke Demo The Store and Forward Messaging Pattern

The Messaging Pattern: Definition Payload, typically represented as a Message object, may be sent to a Destination from a Sender (also commonly known as a Publisher) It is the responsibility of the infrastructure managing the Destination to ensure that Messages (arriving at the said Destination) are then stored (in some manner) and consequently forwarded (in the order in which they were sent) to one or more Receivers (also commonly known as Subscribers)

The Messaging Pattern: Definition Subscribers consume (receive and acknowledge receipt) Messages from the Destination in the order in which they were sent from the Publishers The infrastructure managing the Messages appropriately cleans-up (remove and garbage collect) the Messages that have been consumed by Subscribers The type of the Destination determines the method of delivery to the Subscribers on that Destination

The Messaging Pattern: Definition A Topic Destination (or Topic) will store and forward Messages to all of the Subscribers of the said Topic Destination This form of Message delivery is often called "publish-and-subscribe messaging", "one- to-many messaging" or "the observer pattern" A Queue Destination (or Queue) will store and forward Messages to at most one of the Subscribers of the said Queue Destination For each Message a different Subscriber may be used, but this is implementation and runtime dependent. This form of Message delivery is often called "point-to-point messaging" or "one-to-one messaging"

The Messaging Pattern: Definition A Message may be Persistent or Non-Persistent In the case of Persistent Messages, the infrastructure managing the Destination must safely store the said Messages to a persistent (and recoverable) storage device so that in the case of infrastructure failure, Messages may be recovered (not lost) A Subscriber to a Topic is either Durable or Non-Durable Durable Subscriptions allow the system implementing the Subscriber to terminate and return without losing Messages that may have been delivered during the outage (or disconnection)

Messaging Pattern Demonstration

Conclusions Data Grids provide more than just “caching” capabilities Events Queries Processing Analytics Data Grids (like Coherence) provide reliable (but transaction-free) infrastructure for implementing all kinds of advanced architectural patterns Data Grids help solve the scalability and performance challenges we have traditionally faced, using pure Java

Ihr IT-Partner Thanks!