Word Wide Cache Distributed Caching for the Distributed Enterprise.

26
Word Wide Cache Distributed Caching for the Distributed Enterprise

Transcript of Word Wide Cache Distributed Caching for the Distributed Enterprise.

Word Wide Cache

Distributed Caching for the Distributed Enterprise

Agenda

Introduction to distributed caching Scenario for using caching Caching for the Virtual Organization

The market need

“The major initiatives are building up our low-latency infrastructure, moving toward a service-oriented architecture (SOA) and leveraging grid computing”.

Sharon Reed (CTO for global markets trading technology Merrill Lynch)

What is Distributed Caching

An in-memory data store that can be shared between distributed applications in a real-time fashion.

Background Memory capacity increased dramatically in recent years. The NetEffect open the opportunity to create a virtual memory

Grid. Many applications are seeking for ways to utilize the available

memory resources for performance boosting.

The Need: Managing a memory resource in a reliable, transactional

manner is extremely complex. Applications are seeking for a generic infrastructure for

utilizing memory resource to reduce data access overhead in a distributed environment.

What’s New

Why using Distributed Caching

Scalability Reduce centralized data bottleneck Enable scaling of

Performance Reduce I/O overhead – bringing data closer to the application

using it. Provide in-memory speed.

Reliability Use the cache as a reliable data store.

Real Time content distribution Used for integration and synchronization purposes

Before: Reliability – Centralized DB

Session info

User

ApplicationApplication

RDBMS(JDBC, JDO)ApplicationApplication

Limitations:

•Performance

•Scalability

Session infoUser

ApplicationApplication

ApplicationApplication

Benefits:

•Performance

•Scalability

After: Reliability – Dist. Caching

Before: Scalability with Centralized DB

TelephoneOperating Service

TelephoneOperating Service

Peek load of users

ApplicationApplication

ApplicationApplication

RDBMS(JDBC, JDO)

Load Balancer

Bottleneck

TelephoneOperating Service

TelephoneOperating Service

ApplicationApplication

ApplicationApplication

Peek load of users

Load Balancer

After: Scalability with Distributed Cache

Distributed Caching Topologies

Partitioned CacheReplicated Cache

Master / Local Cache

Content distribution

Content based routing (No need for static queues) Passing content and functionality Dynamic Orchestration (without changing the

application)

RMIJNIJCAMDB

Distributed Caching NetworkPublisher

ContentBased

Routing

.Net, C++

Java Fat Client

J2EESubscribers

SBA – Virtual Middleware

Same data can be viewed through different interfaces!

A single runtime for maintaining scalability, redundancy across all systems

Reduces both the maintenance overhead and development complexity

Provides Grid capabilities to EXISTING applications

Virtual TableJDBC

Clustered Space

JMS

Virtual Topic/ Queue

SpaceJCache

Ap

plic

ati

on

s

Single virtualization technology for caching and messaging

Virtual Middleware

GigaSpaces EAG Caching Edition

Distributed Shared Memory (JavaSpaces)Common Clustering Architecture

Distributed Shared Memory (JavaSpaces)Common Clustering Architecture

Parallel ProcessingParallel Processing Messaging BusMessaging Bus Distributed CachingDistributed Caching

Middleware VirtualizationMiddleware Virtualization

On demand computing resources with optimization for commodity server setup

Service GridService Grid

From JavaSpaces(2001-2003)

Grid Application Server& Distributed Caching

(2005) Caching Edition

Case - Study1. Distributed Session Sharing 2. A geographically distributed trading application case study

Session Sharing between multiple Mobile applications

Simple Example: Distributed Caching

Session Sharing Fail Over Replication Load Balancing

Background –Trading Applications

Trading clients allow "traders" to monitor the market and submit trades.

Read/write ratio is extremely high Events have to be delivered in as close to

real-time as possible. Traditional approaches used mostly

messaging (IIOP, JMS, Sockets) to implement such system.

Caching for the Virtual Enterprise

London Tokyo

•Market View •Quote Management•Hit manager•Credit manager•Session Manager

•Maintain Local Cache of the market view•Maintain Session Object and profile through leasing.•Use master worker patter to execute logic on the server session.

NY

Order Book Application

ReplicatedCache with Partitioned ownership

Challenges: Bandwidth

NY London

Solution:•Batching•Compression•Async replication•Data is kept local•Update are local based on ownership

10Mbs

Replication

Challenges: Reliability

Backup

Primary Primary

Backup

NY London

Sync ReplciationWithin site

ASync Replication between sites

10Mbs

Scaling through Partitioning

NY2

NY1 London1

London 2

NY LondonLoad Balancing Partition the data

within site

ASync Replication between sites per partition

WAN

Challenges: Sync with Ex Db

NY London

DBDBDBDB

load update

Use the replication channel to perform

reliable async replication to external

data base (Sybase)

Load data to the cache from the external data

source in case it is not in the cache

load update

Challenges: Data Distribution

Backup

Primary Primary

Backup

NY London

•Event driven on trade updates •Aggregation of events from all sites•Supports unicast / Multicast•Server side filtering

10Mbs

Challenges: Distributed Query

•Provide SQL and Id based query •Partition data based on content•Distribute query based on ownership

Order Book Application

PartitionedCache

“Select xx from”..

Challenges: Security

•SSO – (Single Sign On)•Provides authentication and authorization•Authorization can be based on content and operation•Replication filters enable filtering of data between sites based on content.•Designed with minimal performance in mind

Order Book Application

PartitionedCache

Summary

Distributed caching solves performance, scalability, and reliability of distributed applications.

It is a major piece in any grid deployment.