soirée data grid au paris jug (2009/05/12)

61
www.parisjug.org www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 12/05/2009 Sunday, June 13, 2010

Upload: cyrille-le-clerc

Post on 10-Nov-2014

2.037 views

Category:

Technology


0 download

DESCRIPTION

Cyrille Le Clerc (Xebia), Erwan Alliaume (Xebia), Jean Michel Bea (Fast Connect) ont présenté au Paris Java User Group les principes du Data Grid. Cache distribué, Network Attached Memory, Data Grid ou Cloud Computing sont des termes très à la mode qui s’inscrivent dans la même tendance. Nous présenterons pendant cette soirée le chemin qui nous à conduit d’un simple EH Cache à des grilles de centaines de giga octects de données qui s’étalent sur des data center. CACHES DISTRIBUES Les Cache Distribués se sont banalisés avec les frameworks Open Source Jboss Cache et EH Cache distribué. Où en sommes nous aujourd’hui ? - Quels sont les cas d’utilisation d’un cache distribué ? Quels gains en attendre ? - Comment migrer d’un cache local à un cache distribué ? Nos frameworks sont-ils adaptés à ces caches distribués ? - Comment fonctionne un cache distribué ? NETWORK ATTACHED MEMORY Le concept de Network Attached Memory a décollé dans l’univers Java avec Terracotta et offre à nos applications un espace mémoire encore inimaginable il y a peu. Que se cache-t-il derrière ? - Quels sont les cas d’utilisation des technologies de Network Attached Memory ? - Cette mémoire virtuellement infinie n’introduit-elle pas des contraintes ? - Si la mémoire est partagée, qu’en est-il des traitements ? - Quelles sont les perspectives des technologies de Network Attached Memory ? DATA GRID Le concept de data grid s’est popularisé avec les services Google Big Table ou Amazon S3 mais aussi avec des sites comme eBay qui annoncent des data center gigantesques. Cela va-t-il arriver dans l’informatique classique ? - Qu’est-ce qu’une grille de donnée ? Comment ça marche ? - Qui a besoin de Data Grid ? Est-ce réservé aux hyper scalable comme eBay ou Facebook ? Comment faisait-on avant ? En ai-je besoin ? - Comment structurer une application pour utiliser une grille de données ? Cela la change-t-il la façon de programmer ? - Map Reduce est-il un pattern utilisable avec une grille de données ? Est-ce le seul ? - Les grilles de données vont-elles remplacer les bases de données traditionnelles ? Comment peuvent-elles cohabiter ? DATA GRID, CLOUD ET LES AUTRES Data Grid, Grid Computing, Cloud Computing et eXtreme Transaction Processing (XTP) sont fréquement associés. Comment positionner Data Grid par rapport à ces technologies ? Quels positionnements ont les acteurs de cet univers ? Amazon S3&EC2 ? Coherence ? Gigaspace ? Google App engine & Big Table ? Grid Gain ? Terracotta ? Websphere eXtreme Scale ? Et les mainframes dans tout ça ?

TRANSCRIPT

Page 1: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.org

www.parisjug.org

Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009

Sunday, June 13, 2010

Page 2: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009

Data gridDu cache distribué aux grilles de données

Cyrille Le ClercXebia

Sunday, June 13, 2010

Page 3: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009

Data gridDu cache distribué aux grilles de données

Erwan AlliaumeXebia

Sunday, June 13, 2010

Page 4: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009

Data gridDu cache distribué aux grilles de données

Jean-Michel BeaFast Connect

Sunday, June 13, 2010

Page 5: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 5

« Du cache distribué

aux grilles de données »

Sunday, June 13, 2010

Page 6: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 6

Intervenants

Cyrille Le Clerc (Xebia)

Erwan Alliaume (Xebia)

Jean-Michel Bea (Fast Connect)

Sunday, June 13, 2010

Page 7: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 7

Sommaire

Caches distribués

Network Attached Memory

Grilles de données

Data Grid, Cloud et les autres …

Sunday, June 13, 2010

Page 8: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Distributed cache and Network Attached Memory has been removed to focus on Data

Grid

8

Sunday, June 13, 2010

Page 9: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Grilles de données

Sunday, June 13, 2010

Page 10: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Partitionner pour tenir la charge

Sunday, June 13, 2010

Page 11: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 39

Partitionner pour tenir la charge

Jusqu’à 1.5 To de RAM et 64 processeurs

Tout sur le même serveur : déjà vu, souvent possible mais très couteux

Data

Mainframe

Sunday, June 13, 2010

Page 12: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Partitionner pour tenir la chargeData Grid

Partition beta

Partition gamma

Partition alpha

Data

Mainframe

Small Server

Small Server

Small Server

Partition data on several servers

Sunday, June 13, 2010

Page 13: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Répliquer pour la disponibilité

Sunday, June 13, 2010

Page 14: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Répliquer pour la disponibilité

Disponibilité Read / Write

Read Only

Read Only

Performances

Partition alpha

Partition alpha

master

Sync replica

Async replica

Master

Sync replica

Async replica

Sunday, June 13, 2010

Page 15: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Répliquer pour la disponibilité

La résilience avec des

réplicas asynchrones

Stand By Data Center

Async replica

Active Data Center

Sync replica

master

Sunday, June 13, 2010

Page 16: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Partitionner et Répliquer

JVM

2C

onta

iner

2JV

M 1

Con

tain

er 1

partition alpha

master

Sync replica

Async replica

partition gamma

Sync replica

master

Async replica

JVM

nC

onta

iner

n

JVM

Catalog Service

JVM

Catalog Service

Sunday, June 13, 2010

Page 17: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Du Near Cache

à la Data Grid

Sunday, June 13, 2010

Page 18: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 46

Le Near CacheApplication avec un near cache

Database ShockAbsorber

Central Database

Cache partition alpha Cache partition beta Cache partition gamma

Node 1

Client near cache

Node n

Client near cache

Dat

agrid

App

licat

ion

clus

ter

Sunday, June 13, 2010

Page 19: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 47

Les limites du Near Cache

Partition alpha

Application

Client near cache

Datagrid

Partition beta

Partition gamma

Latency !Bandwith !

Sunday, June 13, 2010

Page 20: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 48

Du Near Cache à la Grille de Données

Partition alpha

Application

Client near cache

Datagrid

Partition beta

Partition gamma

Stop data transfer

Sunday, June 13, 2010

Page 21: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 49

Du Near Cache à la Grille de Données

Colocalise

r traite

ments

et données

Application

partition alpha

partition gamma

Datagrid

...

Sunday, June 13, 2010

Page 22: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

La grille de donnée

Sunday, June 13, 2010

Page 23: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 51

La grille de données

partition alpha

partition beta

partition gamma

Datagrid

datagrid enabled app

Reduced Business Logic

Collocated data & business logic

Reduced data transferCollocated data & business logic

Sunday, June 13, 2010

Page 24: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 52

La grille de données

Les données sont partionnées

Traitements et données sont colocalisés

Le volume de données échangées est limité aux requêtes et aux fragments de résultat

Sunday, June 13, 2010

Page 25: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Structurer ses données pour la

grille

Sunday, June 13, 2010

Page 26: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 54

Un système de réservation de billets de train !

Sunday, June 13, 2010

Page 27: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 55

Partitionner les données

Modélisation orientée objet classique

TrainStopdate

TrainStationcodename

Traincodetype

Seatnumberprice

Bookingreduction

Passengername

Sunday, June 13, 2010

Page 28: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 56

Partitionner les données

Root entity, clef de partitionnement, sub-entities & duplication de données de référence

TrainStopdate

Seatnumberprice

Bookingreduction

Passengername

Reference data

Duplicated in each partition

TrainStationcodename

Root entity

Partitioning ready entities tree

Traincodetype

Sunday, June 13, 2010

Page 29: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 57

Partitionner les données

Suppression des données inutiles à la logique métier

TrainStopdate

Seatnumberprice

Bookingreduction

Passengername

booked

Remove unused data

TrainStationcodename

Traincodetype

Sunday, June 13, 2010

Page 30: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 58

Partitionner les données

Modélisation partitionnée ‘grid ready’Des données façonnées au besoin métier

Un modèle

‘share nothing’

TrainStopdate

TrainStationcodename

Seatnumberpricebooked

Traincodetype

Sunday, June 13, 2010

Page 31: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 59

Partitionner les données

Casser les relations pour partitionnerSituation de comptes bancaires

from to

CashWitdrawaldateamount

MoneyTransferiddateamount

Accountnumber

CashWitdrawaldateamount

Accountnumber

Sunday, June 13, 2010

Page 32: Soirée Data Grid au Paris JUG (2009/05/12)

CashWitdrawaldateamount

CashWitdrawaldateamount

MoneyTransferIniddateamount

MoneyTransferOutiddateamount

Accountnumber

Accountnumber

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 60

Partitionner les données

Casser les relations pour partitionnerSituation de comptes bancaires

MoneyTransfer est partagé par 2 instances de la root entity !

Sunday, June 13, 2010

Page 33: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 61

Partitionner les données

Casser les relations pour partitionnerSituation de comptes bancaires

Découper MoneyTransfer en 2 entités Et casser le lien !

CashWitdrawaldateamount

CashWitdrawaldateamount

MoneyTransferIniddateamount

MoneyTransferOutiddateamount

Accountnumber

Accountnumber

Sunday, June 13, 2010

Page 34: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 62

Partitionner les données

Casser les relations pour partitionnerSituation de comptes bancaires

Les instances d’Account sont isolées !

CashWitdrawaldateamount

MoneyTransferOutiddateamount

Accountnumber

CashWitdrawaldateamount

MoneyTransferIniddateamount

Accountnumber

Sunday, June 13, 2010

Page 35: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 63

Partitionner les données

Modélisation partitionnée ‘grid ready’Des données façonnées au besoin métier

Account est la root entity de la grille !

CashWitdrawaldateamount

MoneyTransferOutiddateamount

MoneyTransferIniddateamount

Accountnumber

Sunday, June 13, 2010

Page 36: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 64

Le modèle de programmation

À la JPA

Sunday, June 13, 2010

Page 37: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 65

Le modèle de programmation

API de haut niveau à la JPA (persist, merge, remove, find)

Relations entre les entités (@OneToMany, @ManyToOne, @OneToOne)

Versioning (@version)

Indexation des attributs (@Index)

Query language ("select e from Employee e where e.lastName=:lastName" )

Sunday, June 13, 2010

Page 38: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 66

Les Design patterns

Map Reduce

departure=Parisarrival=MarseilledepartureTime=2009/05/01 15:00

datagrid enabled

app

Datagrid

partition gamma

Search trains

partition beta

Search trains

partition alpha

Search trains

Envoyer le traitement

sur toutes les partitions

Sunday, June 13, 2010

Page 39: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 67

Les Design patterns

Map Reduce 0153 - Paris -> Marseille - 15:053954 - Paris -> Marseille - 15:35

datagrid enabled

app

Datagrid

partition gamma

Search trains

partition beta

Search trains

partition alpha

Search trains

1543 - Paris -> Marseille - 14:357492 - Paris -> Lyon -> Marseille – 15:05

NULL

Chaque partition retourne

un fragment de résultat

Sunday, June 13, 2010

Page 40: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 68

Les Design patterns

Map Reduce

Le client agrège les

fragments de résultats

datagrid enabled

app

Datagrid

partition gamma

Search trains

partition beta

Search trains

partition alpha

Search trains

1543 - Paris -> Marseille - 14:357492 - Paris -> Lyon -> Marseille – 15:050153 - Paris -> Marseille - 15:053954 - Paris -> Marseille - 15:35

Sunday, June 13, 2010

Page 41: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 69

Les Design patterns

Request Routing

Une seule partition réalise

le traitement

Book 1 seat on train 0153

datagrid enabled

app

Datagrid

partition gamma

partition beta

partition alpha

Book Ticket

Book Ticket

Book Ticket

Sunday, June 13, 2010

Page 42: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 70

Transactions et ACIDité

Mais et l' ACID dans tout ça ?

Théoriquement possible (Transaction distribuée, 2 phases commit)

Supporté par certains outils (GigaSpaces)

Est-ce vraiment une bonne chose ?

Sunday, June 13, 2010

Page 43: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Interactions avec la base de données

Sunday, June 13, 2010

Page 44: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 72

Interactions avec la BDD

Central Database

Data Grid

Partition beta

Partition alpha

Partition gamma

insert, update & delete

Select (new, modified, deleted)

Comment synchroniser ?

Sunday, June 13, 2010

Page 45: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 73

Interactions avec la BDD

Central Database

Data Grid

Partition gamma

Partition beta

Partition alpha

datagrid enabled

app persist, merge & remove

insert, update & delete

insert, update & delete

insert, update & delete

Entities Modifications Listener

Grille -> BDD

Sunday, June 13, 2010

Page 46: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 74

Interactions avec la BDD

Ecriture en batch sur la BDD

Ecriture en batch à la BDD

Supporte l’indisponibilité de la BDD

Hautement disponible par la réplication de la queue

Central DatabasePartition

Entities Async Batch Modifications Listener

datagrid enabled

app

Entities SyncModifications Listener

Queue

Cache write latency

batch insert, update & delete

persist, merge & remove

Sunday, June 13, 2010

Page 47: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 75

Interactions avec la BDD

Comment détecter

les changements de la BDD ?

Data Grid

Partition beta

Partition alpha

Partition gammaNon datagrid enabled app

create, merge & remove

insert, update & delete

Central Database

Sunday, June 13, 2010

Page 48: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 76

Interactions avec la BDD

select id from train where last_modification > ?

select id from sys_deleted where table=’train’ and last_modification > ?

Data Grid

Partition alpha

Partition beta

Partition gamma

Synchronization Daemon

Cache read latency

select

Central Database

select

select

BDD -> Grille

Sunday, June 13, 2010

Page 49: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 77

Interactions avec la BDD

System Change NumberSur chaque table, une colonne système porte un numéro croissant de la dernière transactionUtilisé pour les checkpoints et la réplicationSupport natif dans :

Oracle: introduit en10G, le SCN est un nombre similaire au numéro de révision SubversionDB2: introduit en 9.5, le SCN est un timestamp

Equivalent manuel : une colonne timestampLa liste des lignes supprimées est stockée dans une table système

Sunday, June 13, 2010

Page 50: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 78

Interactions avec la BDD

Les API de loadersLire en base les données manquantes

List<entity> get(List<id>)

Persister en base les modificationsvoid persist(List<type, entity>)type : insert, update, delete

Bulk load depuis la base au démarrage de la grille

preload(grid)

/!\ les opérations doivent être multi entités pour tenir la charge !

Sunday, June 13, 2010

Page 51: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 79

Interactions avec la BDD

Loaders internes :Pros

L’accès à la base est regroupé dans la grille => cohesivenessLa charge d’accès à la base est répartie sur les partitionsWrite behind permet de batcher les accès à la base

ConsComment un loader peut-il ne charger que les données de sa partition ?

« Je suis le loader de la partition beta, comment puis-jet interroger la base sur les seules données gérées par la partition beta ? Je dois connaitres l’algorithme de partionnement »

Sunday, June 13, 2010

Page 52: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 80

Interactions avec la BDD

Le loader externeCentral Database

Data Grid

Partition beta

Partition alpha

Partition gamma

Node 1

Node n

External loader cluster

select

put

put

put

Sunday, June 13, 2010

Page 53: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 81

Interactions avec la BDD

Loaders externes :Pros

Simple, le partitionnement est réalisé par la grille

ConsLe loader externe devient le goulet d’étranglement des performancesLe code d’accès à la base est disséminé entre la grille et le loader externe => loss of cohesiveness

Sunday, June 13, 2010

Page 54: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Et les batchs ?

Une grille de données peut écourter les nuits batch en parallélisant les traitements.

Sunday, June 13, 2010

Page 55: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Cloud, Grid, XTP et les autres

Sunday, June 13, 2010

Page 56: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Les acteurs

Sunday, June 13, 2010

Page 57: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Les acteursDistributed HashTable (DHT), Key Value Store

SimpleDB, DataStore / BigTable / Hypertable, Memcached, Project Voldermort, CouchDB

Compute GridGridGain

In Memory Data GridGigaSpaces, Oracle Coherence, Websphere eXtreme Scale.

Distributed File systemHadoop

Sunday, June 13, 2010

Page 58: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Questions / Réponses

Sunday, June 13, 2010

Page 59: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 87

Sponsors

Sunday, June 13, 2010

Page 60: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.org

Merci de votre attention!

Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Merci de votre attention!

Sunday, June 13, 2010

Page 61: Soirée Data Grid au Paris JUG (2009/05/12)

www.parisjug.orgCopyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

12/05/2009 Grid computing 89

Licence

http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Sunday, June 13, 2010