Petasky 13oct2014

28
PETASKY Etat d’avancement Emmanuel Medernach IN2P3, CNRS 13 octobre 2014 E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 1 / 28

Transcript of Petasky 13oct2014

Page 1: Petasky 13oct2014

PETASKYEtat d’avancement

Emmanuel Medernach

IN2P3, CNRS

13 octobre 2014

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 1 / 28

Page 2: Petasky 13oct2014

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 2 / 28

Page 3: Petasky 13oct2014

Introduction

Petasky: Gestion de Données Astrophysiques

I Projet Big Data CNRS (Mastodons)I Multi-disciplinaire (Astronomie, Informatique)I Gestion de données provenant de LSST

I ~ 100 Pb d’imagesI ~ 6 Pb de cataloguesI ~ 100 tablesI Evolution des données: en ajout seulement

Table Taille Lignes Colonnes

Object 109 TB 3.8× 1010 470Source 3.6 PB 5.0× 1012 125

I Comment interroger efficacement ces données ?

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 3 / 28

Page 4: Petasky 13oct2014

Système de Médiation Architecture

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 4 / 28

Page 5: Petasky 13oct2014

Système de Médiation Architecture

Partitionnement des tables

I Les tables “Object” et “Source” n’existent pas physiquement.I Ces tables sont partitionnées :

Object =⋃i

Objecti

∀i 6= j ,Objecti ∩ Objectj = ∅

Definition (Pool)Un “pool” est une base de données qui contient plusieurs partitions.

Les partitions sont réparties sur plusieurs pools.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 5 / 28

Page 6: Petasky 13oct2014

Système de Médiation Architecture

Architecture

Le rôle du médiateur est de fournir à l’utilisateur une vue unifiéedes tables et de réécrire les requêtes en conséquence.

PoolObject_001 Source_001

Object_002 Source_002

PoolObject_003 Source_003

Object_004 Source_004

Médiateur

Filter

SQL

SQL

SQL

Orchestration de bases de données.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 6 / 28

Page 7: Petasky 13oct2014

Système de Médiation Intégration de données

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 7 / 28

Page 8: Petasky 13oct2014

Système de Médiation Intégration de données

Intégration de données

I Qu’est-ce que l’intégration de données (“Data Integration”) ?I Comment combiner différentes sources de donnéesI Fournir une vue unifiée de ces donnéesI Etablir des correspondances entre les tables (locales et distantes)

I Le standard SQLMED permet d’interroger des tables à distancecomme des tables locales (Postgres Foreign Data Wrapper).

I Mais cela ne suffit pas: il faut mettre en place des transformationssyntaxiques:

I pour gérer les tables virtuelles comme Object ou SourceI pour gérer leur jointureI pour réécrire les contraintes spatialesI etc.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 8 / 28

Page 9: Petasky 13oct2014

Système de Médiation Intégration de données

Approche “Global-As-View”

Object =>( SELECT * FROM Object_000

UNION ALL SELECT * FROM Object_001UNION ALL SELECT * FROM Object_002UNION ALL SELECT * FROM Object_003 )AS Object

I Les tables partitionnées (Object, Source) sont remplacées par leursdéfinitions (UNION des partitions)

I Des transformations syntaxiques sont appliquées à la requête obtenue:I Transformations des jointures Object/Source en jointures localesI Déplacement des prédicats sur les partitionsI etc.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 9 / 28

Page 10: Petasky 13oct2014

Gestion des Requêtes Spatiales Description

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 10 / 28

Page 11: Petasky 13oct2014

Gestion des Requêtes Spatiales Description

Requêtes spatiales: exemples

I Rectangle sphérique parallèle à ra/decl:ra_PS BETWEEN 1.9 AND 2.0

AND decl_PS BETWEEN 1.5 AND 1.6

I Prédicats sur la distance angulaire:distance(p1, p2) ≤ rayon

I Recherche dans un cône (“cone search”): p2 et rayon constantI Voisinage: p1 et p2 variables, rayon constant

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 11 / 28

Page 12: Petasky 13oct2014

Gestion des Requêtes Spatiales Commutativité

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 12 / 28

Page 13: Petasky 13oct2014

Gestion des Requêtes Spatiales Commutativité

Commutativité de l’UNION

I Si un opérateur Op commute avec l’UNION alors il suffit de distribuercet opérateur sur les partitions puis de faire l’UNION.

Op ◦ UNION def= UNION ◦ Op

I Par exemple la recherche des points dans un rectangle commute avecl’UNION: c’est l’UNION des recherches sur chaque partition.

I De même avec les recherches dans un cône.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 13 / 28

Page 14: Petasky 13oct2014

Gestion des Requêtes Spatiales Commutativité

Non-Commutativité et conséquences

I Et si un opérateur ne commute pas avec l’UNION ?

Op ◦ UNIONdef6= UNION ◦ Op

I Par exemple, l’opérateur de “jointure spatiale” ("spatial join") necommute pas avec l’UNION (effets de bords): il demande donc untraitement à part.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 14 / 28

Page 15: Petasky 13oct2014

Gestion des Requêtes Spatiales Jointure spatiale

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 15 / 28

Page 16: Petasky 13oct2014

Gestion des Requêtes Spatiales Jointure spatiale

Jointure spatiale: extension syntaxique

SELECT O.objectid as oid,S.sourceid as sid

FROM Object O, Source SCROSSMATCH (O, ra_PS, decl_PS)

AND (S, ra, decl)WITH RADIUS 0.0003WHERE O.objectid <> S.objectid ;

I ⇐⇒ WHERE distance(p1, p2) ≤ rayonI Extension de SQL: CROSSMATCH, permet d’identifier

immédiatement une jointure spatiale et d’appliquer la transformationadaptée (transformation globale de la requête).

I Problème: Comment implémenter efficacement la jointurespatiale sur N pools ?

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 16 / 28

Page 17: Petasky 13oct2014

Gestion des Requêtes Spatiales Jointure spatiale

Exemple: Jointure spatiale entre T1 et T2

Table T1 Table T2

Table T1 Table T2

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 17 / 28

Page 18: Petasky 13oct2014

Gestion des Requêtes Spatiales Jointure spatiale

Jointure spatiale

I Rappatrier dynamiquement la bordure sur le master (mais coût important)

I Idée: Stocker une table des bordures sur le master (rayon maximum fixe)

I Permet d’éviter les recalculs et de rajouter des index sur cette bordure

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 18 / 28

Page 19: Petasky 13oct2014

Planification des Requêtes Postgres FDW

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 19 / 28

Page 20: Petasky 13oct2014

Planification des Requêtes Postgres FDW

Problèmes avec FDW

I Pas d’appels de fonctions à distanceI FDW n’exploite pas le parallélisme (les pools)I Inefficace: FDW n’utilise pas les index sur les tables distantes

Sur le pool:SELECT * FROM object_000WHERE q3c_radial_query(ra_PS, decl_PS, 1.3, 3.4, .2) ;...Time: 130.300 ms

Sur le master (via FDW):SELECT * FROM master_object_000WHERE q3c_radial_query(ra_PS, decl_PS, 1.3, 3.4, .2) ;...Time: 130843.931 ms

1000x plus lent avec FDW !

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 20 / 28

Page 21: Petasky 13oct2014

Planification des Requêtes Postgres FDW

Problèmes avec FDW

I Inefficacité des jointures, des produits cartésiens, etc.

Sur le pool:SELECT *FROM object_003_xyz AS o1,

object_003_xyz AS o2WHERE o1.objectid <> o2.objectidAND ...

Time: 2738.217 ms

Sur le master (via FDW):SELECT *FROM master_object_003_xyz AS o1,

master_object_003_xyz AS o2WHERE o1.objectid <> o2.objectidAND ...

Time: 130843.931 ms

50x plus lent avec FDW !

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 21 / 28

Page 22: Petasky 13oct2014

Planification des Requêtes Postgres FDW

FDW: Conclusion

I FDW: Mauvaises performances pour les tables distantesI ⇒ Nous avons décidé d’utiliser FDW seulement pour l’accès aux

données à distance.I ⇒ Nous allons contourner les problèmes rencontrés avec FDW en

construisant notre propre plan d’exécution distribué.

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 22 / 28

Page 23: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Plan de l’exposé

1 Introduction

2 Système de MédiationArchitectureIntégration de données

3 Gestion des Requêtes SpatialesDescriptionCommutativitéJointure spatiale

4 Planification des RequêtesPostgres FDWPlan d’exécution

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 23 / 28

Page 24: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Plan d’exécution distribuéI Trouver les sous-requêtes qui peuvent être exécutées séparement.I Stocker les résultats dans une table temporaire sur le poolI Exporter cette table de résultats sur le master à la volée

I nécessite de déterminer les typesI Remplacer les sous-requêtes par ces tablesI Ce qu’il reste à faire:

I Il faut renommer les colonnes qui partagent le même nomI Il faut donner un nom aux colonnes anonymes (exemple: appels de

fonctions)

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 24 / 28

Page 25: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Identifier les sous-requêtes externes

Definition (sous-requête externe)Une sous-requête est dite externe si il est possible de l’exécuterséparement.

Notre planificateur reconnait si une sous-requête est externe ssi:I Elle n’utilise que des tables provenant d’un seul pool (ou du master)I Elle ne fait pas réference à des attributs en dehors de la sous-requête

SELECT * FROM Object O1WHERE (SELECT count(*) FROM Source S

WHERE O1.objectid = S.objectid) > 100 ;

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 25 / 28

Page 26: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Plan d’exécution

I Nous recherchons dans la requête d’origine les requêtes externes maximales.

I Chaque sous-requête externe est remplacée par une table de résultats

I Nous créons un plan d’exécution à partir de ces sous-requêtes externes.

I Ce plan est exécuté en parallèle à partir de sa description (structure dedonnées)

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 26 / 28

Page 27: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Résultats (PT12 sur une seule machine avec 4 pools)

Requête Temps avec FDW Temps sans FDW

Perf_Q3_crossmatch 21350.12 s 8545.08 scrossmatch_query - 6320.7 sQuery022_crossmatch - 124.86 s

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 27 / 28

Page 28: Petasky 13oct2014

Planification des Requêtes Plan d’exécution

Annexe

-- Perf_Q3_crossmatch

SELECT S1.objectId AS s1,S2.objectId AS s2

FROM Object S1,Object S2

CROSSMATCH (S1, ra_PS, decl_PS)AND (S2, ra_PS, decl_PS)

WITH RADIUS .002778WHERE S1.gFlux_PS > 0.AND S1.rFlux_PS > 0.AND S1.iFlux_PS > 0.AND S1.zFlux_PS > 0.AND S1.objectId <> S2.objectIdAND fluxToAbMag(S1.gFlux_PS)

- fluxToAbMag(S1.rFlux_PS) < 0.7AND fluxToAbMag(S1.rFlux_PS)

- fluxToAbMag(S1.iFlux_PS) > 0.4AND fluxToAbMag(S1.iFlux_PS)

- fluxToAbMag(S1.zFlux_PS) > 0.4 ;

-- crossmatch_query

SELECT O.objectid as oid, S.objectid as soidFROM Object O, Source SCROSSMATCH (O, ra_PS, decl_PS)

AND (S, ra, decl)WITH RADIUS 0.0003WHERE O.objectid <> S.objectid ;

-- Query022_crossmatch

SELECT o1.objectId AS objId1,o2.objectId AS objId2

FROM Object o1,Object o2

CROSSMATCH (o1, ra_PS, decl_PS)AND (o2, ra_PS, decl_PS)

WITH RADIUS 0.005WHERE o1.ra_PS BETWEEN 0.5 AND 1.2AND o1.decl_PS BETWEEN 2.8 AND 3.7AND o1.objectId <> o2.objectId ;

E.Medernach (IN2P3, CNRS) Etat d’avancement PETASKY 13 oct 2014 28 / 28