morning with mongodb paris 2012 - octo

11
1 © OCTO 2012 © OCTO 2012 A Morning with MongoDB MongoDB et « l’analytics »

Upload: mongodb

Post on 07-Jul-2015

497 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Morning with MongoDB Paris 2012 - Octo

1

© OCTO 2012 © OCTO 2012

A Morning with MongoDBMongoDB et « l’analytics »

Page 2: Morning with MongoDB Paris 2012 - Octo

2

© OCTO 2012

Arnaud Huon

Consultant Senior

Média & Internet

[email protected]

MongoDB Addict depuis 2010

Page 3: Morning with MongoDB Paris 2012 - Octo

3

© OCTO 2012

Page 4: Morning with MongoDB Paris 2012 - Octo

4

© OCTO 2012

Mes rendez-vous8 mois d’Urbandive

500 000 entités géographiques sur du replica set

1 mois de Groupe MoniteurTraces fonctionnelles indexées et requêtables

3 jours d’AnalyticsRéconciliation et Agrégation de traces de visites

Mes sentimentsVersatile

Facile d’accès

Facile à mettre en place

Robuste

Developer Friendly

MongoDB & Moi

Page 5: Morning with MongoDB Paris 2012 - Octo

5

© OCTO 2012

Faire glisser l'image vers l'espace réservé ou cliquer sur l'icône pour l'ajouter

Application orientée Flux évènementiel

Application orientée Transaction

Application orientée Stockage

Application orientée Calculs

Univers « standard »

SGBDR,Serveur d’application,

ETL, ESB

Au-delà de 10 To en ligne, les architectures « classiques » nécessitent des adaptations logiques et matérielles très importantes.

Au-delà de 1 000 transactions/seconde les architectures « classiques » nécessitent des adaptations logiques et matérielles très importantes.

Au-delà de 10 threads/Core CPU, la programmation séquentielle classique atteint ses limites (IO).

Au-delà de 1 000 évènements/seconde, les architectures « classiques » nécessitent des adaptations logiques et matérielles très importantes.

Stockage distribué

Share nothing

XTP

Programmation parallèle

Event Stream Processing

Page 6: Morning with MongoDB Paris 2012 - Octo

6

© OCTO 2012

Faire glisser l'image vers l'espace réservé ou cliquer sur l'icône pour l'ajouter

Application orientée Flux évènementiel

Application orientée Transaction

Application orientée Stockage

Application orientée Calculs

MongoDB

Univers « standard »

Page 7: Morning with MongoDB Paris 2012 - Octo

7

© OCTO 2012

Contexte : un site de presse en ligne veut construire un paywall

Enjeu : Etre capable d’agréger 67 M de lignes de CSV (soit 10 Go), avec un temps de développement minimum

5 épreuves imposées : insertion – modification – réconciliation – double agrégation – export

Ma contrainte : je ne suis pas DBA !

Cas d’usage « Analytics »

Page 8: Morning with MongoDB Paris 2012 - Octo

8

© OCTO 2012

Développement initial en ½ journée

Amélioration 1 : faire l’indexation après l’insertionRéduction de 30% du temps de traitement

Amélioration 2 : Modifier les données directement à la source Réduction de 50% du temps de traitement

Amélioration 3 : Changement d’infrastructure

Amélioration en 3 phases

Page 9: Morning with MongoDB Paris 2012 - Octo

9

© OCTO 2012

Configuration serveur RHEL516Go de RAM (8 dispo)8 CPUDisque Dur 100Go

Debian24Go de RAM8 CPUSSD 70Go

instance "m2.2xlarge" sous RHEL632Go (35 visible dans le top)4 CPUstockage EBS 300Go

Etapes du traitement

import des 67 000 000 lignes 1h15 30 mn 55 mn

Indexation 1h05 20 mn 40 mn

Réconciliation des données10h 3h30 8h30

Agrégations de préparation

Agrégations interrompu au bout de 26h,loin d'avoir fini...

pas fait, manque d'espace disque 14h00

Notre benchmark

Page 10: Morning with MongoDB Paris 2012 - Octo

10

© OCTO 2012

Insérer puis indexer

Modifier plutôt les fichiers sources plutôt que les données insérées

Avoir un disque dur volumineux et rapide

Avoir le plus de RAM possible

Doggy Bag

Page 11: Morning with MongoDB Paris 2012 - Octo

11

© OCTO 2012 © OCTO 2012

Des questions ?

[email protected]