Petasky 6dec2013

231 vues

Publié le

Petasky workshop presentation

Publié dans : Sciences
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
231
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Petasky 6dec2013

  1. 1. État d’avancement Petasky 2013 Workshop Petasky, 6 décembre 2013 E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 1 / 18
  2. 2. Plan 1 Présentation du problème 2 Recensement des requêtes Requêtes d’évaluation (Petasky) Scalability & Performance Tests (LSST) E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 2 / 18
  3. 3. Présentation du problème Principe de Fonctionnement I Par exemple, Object ) Object_0001, Object_0002, etc. I Un worker contient plusieurs chunks. I Toutes les tables ne sont pas découpées. Découpage géometrique en “chunks” E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 3 / 18
  4. 4. Présentation du problème Exemple de traitement Sélection d’un objet selon son ID SELECT * FROM Object WHERE objectId = 402395485975435 ; I La table Object est découpée spatialement I Il faut donc d’abord chercher dans quel chunk se trouve l’objet. On utilise une table annexe sur le master qui indique le numéro de chunk pour chaque objectId: [MASTER] <chunkId> = SELECT chunkId FROM objectId_idx WHERE objectId = 402395485975435 ; [MASTER] <chunkId> = 2044 I Ensuite on interroge le chunk (ici Object_2044) sur le worker correspondant (WORKER_21) : [WORKER_21] SELECT * FROM Object_2044 WHERE objectId = 402395485975435 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 4 / 18
  5. 5. Présentation du problème Exemple de traitement (suite) Sélection d’un objet selon son ID SELECT * FROM Object WHERE objectId = 402395485975435 ; I Il faut transformer les requêtes, par exemple : 1. Reconnaître qu’on interroge un objet particulier 2. Extraire de l’information (“objectId = 402395485975435”) 3. Créer la requête sur la table objectId_idx et l’exécuter sur le master 4. Réécrire la requête pour interroger le chunk sur le worker correspondant I Comment automatiser le processus de transformation pour répondre à une requête arbitraire ? I Par exemple sur la liste des requêtes suivantes. E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 5 / 18
  6. 6. Recensement des requêtes Requêtes d’évaluation (Petasky) Plan 1 Présentation du problème 2 Recensement des requêtes Requêtes d’évaluation (Petasky) Scalability & Performance Tests (LSST) E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 6 / 18
  7. 7. Recensement des requêtes Requêtes d’évaluation (Petasky) Requêtes d’évaluation (Petasky) I Petasky/Q1: SELECT * FROM Object WHERE objectId = 402395485975435 ; SELECT * FROM Source WHERE objectId = 402395485975435 ; SELECT * FROM Source WHERE sourceId = 29706943633032196 ; I Petasky/Q2: SELECT sourceId, taiMidPoint FROM Source WHERE objectId = 430209694172015 AND scienceccdexposureId = 454490010310 ; I Petasky/Q3: SELECT sourceId, taiMidPoint FROM Source WHERE objectId = 430209694172137 ; I Petasky/Q4: SELECT taimidpoint, modelFlux, modelFluxSigma FROM Source WHERE objectId = 436428806827956 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 7 / 18
  8. 8. Recensement des requêtes Requêtes d’évaluation (Petasky) Requêtes d’évaluation (Petasky) I Petasky/Q5: Gestion du filtrage sur la géométrie SELECT * FROM Object WHERE ra_ps >= 1.0 AND ra_ps <= 2.0 AND decl_ps >= 1.0 AND decl_ps <= 2.0 ; I Petasky/Q6: (Irréaliste: la table Source fera 4 PB) SELECT * FROM Source WHERE ra >= 2.0 ; I Petasky/Q7: SELECT * FROM Object WHERE rflags < 40 AND iflags < 70000 AND yflags > 40000 AND zflags > 40000 ; I Petasky/Q8: (Irréaliste) SELECT objectId, COUNT(sourceid) FROM Source GROUP BY objectId ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 8 / 18
  9. 9. Recensement des requêtes Requêtes d’évaluation (Petasky) Requêtes d’évaluation (Petasky) I Petasky/Q9: SELECT * FROM Source JOIN Object USING(objectid) WHERE objectid = 430209694172133 ; I Petasky/Q10: (Irréaliste) SELECT objectId, sourceId FROM Source ORDER BY objectid ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 9 / 18
  10. 10. Recensement des requêtes Scalability & Performance Tests (LSST) Plan 1 Présentation du problème 2 Recensement des requêtes Requêtes d’évaluation (Petasky) Scalability & Performance Tests (LSST) E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 10 / 18
  11. 11. Recensement des requêtes Scalability & Performance Tests (LSST) Classification des requêtes standards LSST Géométrie Voisinage Color cut 7 13 22 25 43 34 35 36 29 E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 11 / 18
  12. 12. Recensement des requêtes Scalability & Performance Tests (LSST) Classification des requêtes standards LSST Classification des requêtes standards LSST LSST Tables Géométrie Voisinage Color cut 7 Source, Object, Filter X - - 9 Object - - - 13 Object - X X 19 Object, DIASource - - - 22 Object X X - 24 Galaxy, Star - - - 25 Object - X - 28 Object, Galaxy, Neighbors, photoZ - - - 29 Object, Neighbors X - - 34 Galaxy, Neighbors - - X 35 Object - - X 36 Object - - X 43 Object - X X 56 Source - - - E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 12 / 18
  13. 13. Recensement des requêtes Scalability & Performance Tests (LSST) Scalability & Performance Tests (LSST) I Perf/Q1 (db/queries/029): SELECT o.ra, o.decl, o.flags, o.type, o.objid, o.psfMag_g, o.psfMag_r, o.psfMag_i, o.gMag, o.rMag, o.iMag, o.petroRad_r, o.q_g, o.q_r, o.q_i, o.u_g, o.u_r, o.u_i, o.mE1_r, o.mE2_r, o.mRrCc_r, o.mCr4_r, o.isoA_r, o.isoB_r, o.isoAGrad_r, o.isoBGrad_r, o.isoPhi_r, n.distance, p.r, p.g FROM Object as o LEFT JOIN Neighbors as n ON (o.objid = n.objid) JOIN Object as p ON (p.objId = n.neighborObjId) WHERE (o.ra > 120.) AND (o.ra < 240.) AND (o.r > 16.) AND (o.r < 21.) AND n.neighborObjId = ( SELECT nn.neighborObjId FROM Neighbors nn JOIN Object pp ON (nn.neighborObjId = pp.objectId) WHERE nn.objectId = o.objectId ORDER BY pp.r LIMIT 1 ) LIMIT 100 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 13 / 18
  14. 14. Recensement des requêtes Scalability & Performance Tests (LSST) Scalability & Performance Tests (LSST) I Perf/Q2 (db/queries/025): SELECT DISTINCT o1.objectId, o1.ra, o1.decl, o2.iauId FROM Object o1, Object o2 WHERE ABS(o2.ra - o1.ra ) < o2.raRange/(2*COS(RADIANS(o1.decl))) AND ABS(o2.decl - o1.decl) < o2.declRange/2 AND ( SELECT COUNT(o3.objectId) FROM Object o3 WHERE o1.objectId <> o3.objectId AND ABS(o1.ra - o3.ra ) < 0.1/COS(RADIANS(o3.decl)) AND ABS(o1.decl - o3.decl) < 0.1 ) > 10000 ; I Perf/Q3 (db/queries/043): SELECT S1.objectId AS s1, S2.objectId AS s2 FROM Object S1, Object S2 WHERE S1.extendedParam < 0.2 AND S2.extendedParam < 0.2 AND spDist(S1.ra, S1.decl, S2.ra, S2.decl) < .05 AND S1.uMag-S1.gMag < 0.4 AND S1.gMag-S1.rMag < 0.7 AND S1.rMag-S1.iMag > 0.4 AND S1.iMag-S1.zMag > 0.4 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 14 / 18
  15. 15. Recensement des requêtes Scalability & Performance Tests (LSST) Scalability & Performance Tests (LSST) I Perf/Q4 (db/queries/019): SELECT objectId FROM Object JOIN DIASource USING(objectId) WHERE latestObsTime > :time GROUP BY (objectId) HAVING COUNT(objectId) = 1 ; I Perf/Q5 (db/queries/036): SELECT ROUND(uMag-gMag,0) AS UG, ROUND(gMag-rMag,0) AS GR, ROUND(rMag-iMag,0) AS RI, ROUND(iMag-zMag,0) AS IZ, ROUND(zMag-yMag,0) AS ZY, COUNT(*) AS pop FROM Object WHERE extendedParam < 0.2 AND (uMag+gMag+rMag+iMag+zMag+yMag) < 150 GROUP BY UG, GR, RI, IZ, ZY HAVING pop > 500 ORDER BY pop ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 15 / 18
  16. 16. Recensement des requêtes Scalability & Performance Tests (LSST) Scalability & Performance Tests (LSST) I Perf/Q6 (db/queries/056): (Irréaliste) SELECT * FROM Source ; I Perf/Q7 (db/queries/035): SELECT objectId FROM Object WHERE fluxToAbMag(uFlux_PS) - fluxToAbMag(gFlux_PS) < 0.4 AND fluxToAbMag(gFlux_PS) - fluxToAbMag(rFlux_PS) < 0.7 AND fluxToAbMag(rFlux_PS) - fluxToAbMag(iFlux_PS) > 0.4 AND fluxToAbMag(iFlux_PS) - fluxToAbMag(zFlux_PS) > 0.4 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 16 / 18
  17. 17. Recensement des requêtes Scalability & Performance Tests (LSST) Scalability & Performance Tests (LSST) I Perf/Q8 (db/queries/007): SELECT objectId, taiMidPoint, fluxToAbMag(psfMag) FROM Source JOIN Object USING(objectId) JOIN Filter USING(filterId) WHERE areaSpec_box(10.5, 30.5, 12.2, 32.7) AND filterName = 'u' AND variability BETWEEN .6 AND 1. ORDER BY objectId, taiMidPoint ASC ; I Perf/Q9 (db/queries/009): SELECT * FROM Object WHERE objectId = 417861663196448 ; E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 17 / 18
  18. 18. Recensement des requêtes Scalability & Performance Tests (LSST) Conclusions I Comment procéder pour une requête arbitraire ? I A partir de la description des tables partitionnées I Gestion des chunks (Id7! chunkId) I Gestion de la géométrie (ra; decl7! chunkId) I etc. I Recensement des transformations utiles de l’AST I Objectif: Traduire une requête en plan d’exécution distribué SQL; Description7! Plan d’exécution distribué f(Hostname;SQL); : : :g E. Medernach (IN2P3, CNRS) Petasky 2013 6 décembre 2013 18 / 18

×