[breizhcamp 2015] mongodb et elastic, meilleurs ennemis ?
TRANSCRIPT
![Page 1: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/1.jpg)
BreizhCamp 2015 #BzhCmp
MongoDB et Elastic,meilleurs ennemis ?
Sébastien PrunierChris Woodrow
#MongoElastic
![Page 2: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/2.jpg)
A propos de nous
Sébastien PrunierDéveloppeur@Serli
CraftmanMongoAddict
Chris WoodrowDéveloppeur@Serli
DataCuriousElasticJunkie
![Page 3: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/3.jpg)
Serli
Société de conseil et d’ingénierieDéveloppement, expertise, R&D, formation
70 personnes
Contribution à des projets OSS
Membre du JCP
![Page 4: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/4.jpg)
Petit sondage ...
![Page 5: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/5.jpg)
MongoDB
Base de données NoSQL2007 par 10genC++Orientée documentsOpen Source (2009)Licence AGPL
![Page 6: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/6.jpg)
Elastic{Search}
Moteur de recherche distribué2010 par Shay BanonJava - Basé sur LuceneOrientée documentsOpen SourceLicence Apache
![Page 7: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/7.jpg)
Projets types Mongo et Elastic
● Applications satellites○ Vision 360°
● Business Intelligence● Open data● Moteur de recherche● Backend mobile● Objets connectés
![Page 8: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/8.jpg)
Beaucoup de points communs
● Orientées documents (JSON)● Distribuées● Schemaless● Indexes secondaires● Aggrégations● Recherche géographique
![Page 9: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/9.jpg)
Mongo ou Elastic ?
La tronçonneuse ...
... ou la batte ?
![Page 10: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/10.jpg)
Comment choisir ?
![Page 11: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/11.jpg)
Popularité ?
![Page 12: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/12.jpg)
db-engines.com
![Page 13: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/13.jpg)
Méthode pas très fiable ...
![Page 14: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/14.jpg)
Démarrage rapide
![Page 15: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/15.jpg)
Developer friendly
Download,Unzip,Run,Play !
![Page 16: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/16.jpg)
Vers le Minimum Viable Product
![Page 17: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/17.jpg)
Installation d’un cluster Elastic
2 minutescluster.name: my_cluster
$ ./elasticsearch$ ./elasticsearch
config/elasticsearch.yml
![Page 18: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/18.jpg)
Installation d’un replicaset Mongo$ mongod --dbpath=~/mongo-data/0 --replSet rs0$ mongod --dbpath=~/mongo-data/1 --replSet rs0 --port 27018$ mongod --dbpath=~/mongo-data/2 --replSet rs0 --port 27019
Le sharding est une autre histoire ...
rs.initiate()rs.add("<hostname>:27018")rs.add("<hostname>:27019")
mongo shell
![Page 19: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/19.jpg)
Noeud pour les tests en JavaSettings settings = ImmutableSettings. builder() .put("http.port", "9200") .put("network.host", "localhost") .put("path.data", "/tmp/es-local-data" ) .build();
Node node = NodeBuilder. nodeBuilder() .local(true) .data(true) .clusterName( "elasticSearch") .settings(settings) .build();
node.start();
![Page 20: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/20.jpg)
Indexation
![Page 21: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/21.jpg)
Indexation dans Elastic
Basé sur un index inversémapping → analyse des données
Near Real-Time
![Page 22: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/22.jpg)
Index Inversé
ElasticSearch (Lucene) : index inversé.Doc #1 “La Vie de Brian”Doc #2 “Le Sens de la vie”● Stop words● Minification● ASCII folding● Langages● ...
Terme Documents
brian #1
sens #2
vie #2, #1
Sans full-text : not_analyzed
![Page 23: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/23.jpg)
Vous avez bien dit Near real-time?Flush périodiques (1s) -> optimiser Lucene
Est-ce vraiment important ?
Near real-time?
![Page 24: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/24.jpg)
Indexation dans MongoDB
Requête possible sur un attribut même s’il n’est pas indexé (attention cependant aux perfs !)
![Page 25: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/25.jpg)
Mise à jour dans Elastic
Réindexation totale du document (même avec _update!)
Suppression du document puis recréation
![Page 26: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/26.jpg)
Mise à jour dans MongoDB
db.collection.update()
Remplacement d’un document, ou modification partielle via un opérateur ($set, $pull, $push …)
Options : multi (false par défaut), upsert
![Page 27: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/27.jpg)
Relations
![Page 28: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/28.jpg)
Disclaimer
AttentionSi vous devez faire des jointures :
● Soit vous avez mal modélisé vos documents● Soit c’est légitime … et vous avez choisi la
mauvaise base !
![Page 29: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/29.jpg)
Relations dans MongoDB
Deux possibilités :● Référence à un _id d’un autre document● Utilisation d’un objet DBRef
Dans les deux cas → plusieurs requêtes !
![Page 30: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/30.jpg)
Relations dans MongoDB
Annonce pour la version 3.2 : $lookup (!?!)
![Page 31: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/31.jpg)
Parent/ChildUn document est lié à son parentUne solution au problème des updates
Impact sur les perfsContraintes techniques
Relations dans Elastic
![Page 32: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/32.jpg)
Full text search
![Page 33: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/33.jpg)
Je veu fair du fotbal
![Page 34: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/34.jpg)
MongoDB Full Text Search
![Page 35: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/35.jpg)
Agrégations
![Page 36: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/36.jpg)
Pour compter, grouper, ... les donnéesLes agrégations
![Page 37: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/37.jpg)
MongoDB aggregation pipeline
json jsonjson
json
$match $unwind $group
$sum $avg $min $max
$addToSet$year $month$week
![Page 38: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/38.jpg)
Deux types d’aggrégations : Bucket ou Metrics Combiné à la recherche (queries + filters)
Les agrégations dans Elastic
2015
Date Bucket Term Bucket “weapon” avg “budget”Query type = “nanard”
1974jsonjson jsonjson
jsonjson
2015
batte sabre
1974
gun sabre
2015
sabre145.3
1974
pistolet2.4
sabre0.34
batte245.3
![Page 39: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/39.jpg)
Stockage de fichiers
![Page 40: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/40.jpg)
GridFS
Limite de BSON à 16 MBFichiers stockés en morceaux (chunks)Attention à la façon dont le fichier est reconstitué (streaming ?)Pas de lien direct vers le fichier
![Page 41: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/41.jpg)
Elastic : Attachment Type
Les fichiers sont stockés encodés en Base 64Pas de streamingAnalyse avec Apache Tika
Par défaut 100000 charactèresPas de lien direct vers le fichierLimite théorique : 2Go
![Page 42: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/42.jpg)
GridFS / Attachment Type
![Page 43: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/43.jpg)
Pour stocker des fichiers...
Plusieurs solutions pour stocker beaucoup de fichiers● HDFS, Ceph, ...● Amazon S3, Google Cloud Storage, ...
![Page 44: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/44.jpg)
Modèle distribué
![Page 45: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/45.jpg)
Réplication & Sharding
Réplicationduplication des données (redondance) → haute disponibilité
Shardingrépartition des données sur plusieurs shards → scalabilité horizontale
![Page 46: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/46.jpg)
Master
MongoDB et Elastic : Master Node
Si le master tombe, les noeuds restants élisent un nouveau masterQuorum de noeuds : Eviter le split-brainEn cas de partitionnement perte de Disponibilité
![Page 47: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/47.jpg)
Sharding
Dans MongoDB : Configurable
Dans Elastic : By design mais limitantImmuablenbNoeudsMax = nbShards x nbRépliques
![Page 48: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/48.jpg)
Jepsen : outil de test des systèmes distribuésEn cas de partionnement
Call me maybe : Kyle Kingsbury
https://aphyr.com/tags/jepsen
![Page 49: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/49.jpg)
Problèmes de durabilitéMettez les chances de votre côté !
Work In Quick Progress : http://bit.ly/1FWvOr2
Call me maybe - Elastic
![Page 50: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/50.jpg)
Problèmes de cohérence (Stale Read / Dirty Read)
Certains bugs fixés, d’autres en cours (3.2)
Call me maybe - MongoDB
![Page 51: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/51.jpg)
Performances
![Page 52: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/52.jpg)
Benchmark
Un article sur Quarkslab's blog l’affirme, Elastic est bien plus performant que MongoDB
![Page 53: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/53.jpg)
Benchmark
Une étude de l’Université de Zaria est sans appel, MongoDB est nettement plus performant que Elastic
![Page 54: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/54.jpg)
Benchmarks sucks !
![Page 55: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/55.jpg)
Production
![Page 56: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/56.jpg)
Objectif : Séduire les développeursPas mal d’”ajustements” pour passer en prod
![Page 57: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/57.jpg)
Systèmes vivants !
ConfigurationSécurisationMonitoring
TuningAutomatisation
![Page 58: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/58.jpg)
Ecosystème
![Page 59: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/59.jpg)
Ecosystème MongoDB
Drivers dans beaucoup de langagesTooling en Go (v3)Mongo-Hacker (shell extension)Beaucoup de GUI (mais pas forcément top)
![Page 60: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/60.jpg)
Ecosystème MongoDB
MMS / OpsManager
![Page 61: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/61.jpg)
Client Elastic
Client natif pour Java (protocole binaire)API REST
Simple à mettre en oeuvreDes clients pour tous les langages
Parfois les réponses sont un peu “verbeuses”
![Page 62: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/62.jpg)
Un écosystème très dense : Kibana : Data VizLogstash : ETLShield : SécuritéMarvel : Supervision...
Ecosystème Elastic
![Page 63: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/63.jpg)
Cloud
Des offres SaaS pour les deux : MongoDB
MongoLab, MongoSoup, MongoHQ
ElasticFound, Bonsai, Search
![Page 64: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/64.jpg)
Faire un choix
![Page 65: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/65.jpg)
Alors? MongoDB ou ElasticSearch?Tronçonneuse? Batte?
Oui Oui
Non Updates Fréquents?
Full Text?
Problèmes très Complexes?
Non
Oui
Non
OuiNon
Oui
Un peu tout ça ? Non
Oui (les deux)Performances?
Oui
Performances?Non
Oui
Oui
Non
...
![Page 66: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/66.jpg)
Pour résumer
MongoDBUpdateTemps réél
ElasticFonctionnalitésEcosystème
![Page 67: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/67.jpg)
Bénéficier des avantages des deux.Minimiser les inconvénients de chacun.
Les deux ?
![Page 68: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/68.jpg)
Même paradigme
Deux bases orientées documents.Pas besoin de remodéliser (généralement)
![Page 69: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/69.jpg)
Architecture
![Page 70: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/70.jpg)
Une solutionEcrire dans MongoDB
Lire et rechercher dans Elastic
read/write read
![Page 71: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/71.jpg)
Mais ...
read
?Comment synchroniser ?
read/write
![Page 72: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/72.jpg)
MongoRiver
read
polling
oplog river
read/write
![Page 73: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/73.jpg)
Ecrire dans les deux
read
write
read/write
![Page 74: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/74.jpg)
Batch maison
readread/write
![Page 75: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/75.jpg)
Message Queue
read
write
consumer
push
writeread/write
![Page 76: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/76.jpg)
Conclusion
Le bon outil pour le bon usage !
![Page 77: [Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?](https://reader036.vdocuments.net/reader036/viewer/2022062406/55b8e65abb61eb97088b4702/html5/thumbnails/77.jpg)
Merci !