SlideShare a Scribd company logo
1 of 23
...Cómo aprendimos que la culpa era nuestra...Cómo aprendimos que la culpa era nuestra
#SVQMongoDB#SVQMongoDB
MongoDBMongoDB
Sobre míSobre mí
Me llamo JavierMe llamo Javier
@JvrBaena@JvrBaena
Backend developerBackend developer
en Socialbroen Socialbro
MongoDBMongoDB
●
Uso intensivoUso intensivo
●
Procesamiento de Twitter en tiempo realProcesamiento de Twitter en tiempo real
●
Elevado nivel de escrituraElevado nivel de escritura
●
Consultas frecuentesConsultas frecuentes
MongoDBMongoDB
●
Hemos aprendido muchoHemos aprendido mucho
●
No fue un camino de rosas...No fue un camino de rosas...
●
...principalmente nuestra culpa...principalmente nuestra culpa
El InfiernoEl Infierno
ÍndicesÍndices
#SVQMongoDB#SVQMongoDB
...Evitando fullscans...Evitando fullscans
ÍndicesÍndices
●
VI-TA-LESVI-TA-LES
●
Evitan Fullscan de ColeccionesEvitan Fullscan de Colecciones
Tus patrones de acceso a datos definenTus patrones de acceso a datos definen
los índices que debes establecer... ¡ojo silos índices que debes establecer... ¡ojo si
cambian!cambian!
Working SetWorking Set
#SVQMongoDB#SVQMongoDB
...necesidades de RAM...necesidades de RAM
Working SetWorking Set
●
Lo ideal es que quepa en RAM...Lo ideal es que quepa en RAM...
●
…… o al menos los índiceso al menos los índices
Los datos más accedidos + los índicesLos datos más accedidos + los índices
necesarios componen el working setnecesarios componen el working set
Monitorizar el tamaño del working setMonitorizar el tamaño del working set
y la capacidad de las máquinasy la capacidad de las máquinas
EmbeberEmbeber
#SVQMongoDB#SVQMongoDB
...no te obsesiones...no te obsesiones
EmbeberEmbeber
●
Ausencia de Joins === Embeber DocsAusencia de Joins === Embeber Docs
●
Una sola query recupera toda la infoUna sola query recupera toda la info
Al usar mongodb, podemos acabarAl usar mongodb, podemos acabar
recurriendo demasiado a embeberrecurriendo demasiado a embeber
documentosdocumentos
EmbeberEmbeber
●
¿Many o Few?¿Many o Few?
●
¿Tamaño definido o incontrolado?¿Tamaño definido o incontrolado?
●
No pasa nada por usar referenciasNo pasa nada por usar referencias
Un array queUn array que
crececrece
indefinidamenteindefinidamente
provocaráprovocará
problemas alproblemas al
escribirescribir
Fuente: http://crocodillon.com/images/blog/2013/mongodb-for-dbas__data-files.pngFuente: http://crocodillon.com/images/blog/2013/mongodb-for-dbas__data-files.png
WriteWrite
ConcernConcern
#SVQMongoDB#SVQMongoDB
...problemas en las réplicas...problemas en las réplicas
Write ConcernWrite Concern
Al usar replica sets, podemosAl usar replica sets, podemos
configurar el número de nodos al queconfigurar el número de nodos al que
queremos que una escritura se repliquequeremos que una escritura se replique
antes de considerarla como exitosaantes de considerarla como exitosa
Configurar erróneamente el writeConfigurar erróneamente el write
concern puede provocar que tusconcern puede provocar que tus
escrituras no terminenescrituras no terminen
ShardingSharding
#SVQMongoDB#SVQMongoDB
...o más bien no hacerlo...o más bien no hacerlo
Sharding (I)Sharding (I)
●
Working Set demasiado grandeWorking Set demasiado grande
●
Alto nivel de escriturasAlto nivel de escrituras
●
Impacto en rendimientoImpacto en rendimiento
Sharding (I)Sharding (I)
Sharding (I)Sharding (I)
Sharding ayuda a minimizar todos estosSharding ayuda a minimizar todos estos
factores.factores.
Al escalar horizontalmente repartimosAl escalar horizontalmente repartimos
el volumen de acceso y dividimos elel volumen de acceso y dividimos el
working set de cada máquina.working set de cada máquina.
ShardingSharding
#SVQMongoDB#SVQMongoDB
...no planificar lo suficiente...no planificar lo suficiente
Sharding (II)Sharding (II)
Usar sharding implica planificar algunosUsar sharding implica planificar algunos
puntos clave:puntos clave:
●
Configuración InicialConfiguración Inicial
●
Shard KeyShard Key
●
Añadir Nuevos ShardsAñadir Nuevos Shards
Una planificación inadecuada, o no tenerUna planificación inadecuada, o no tener
@!#! ¿Y ahora@!#! ¿Y ahora
qué?qué?
#SVQMongoDB#SVQMongoDB
...misterios infernales...misterios infernales
MongoDBMongoDB
●
Alto RendimientoAlto Rendimiento
●
Alta DisponibilidadAlta Disponibilidad
●
Escalabilidad HorizontalEscalabilidad Horizontal
...Pero hay que saber qué se hace...Pero hay que saber qué se hace
●
Patrones de AccesoPatrones de Acceso
●
Modelado de DatosModelado de Datos
●
ArquitecturaArquitectura
●
Funcionamiento InternoFuncionamiento Interno
¡Gracias por venir!¡Gracias por venir!
@JvrBaena@JvrBaena
@SVQMongoDB@SVQMongoDB

More Related Content

Viewers also liked

La Química de l'olor. Un recurs per l'aula de secundària.
La Química de l'olor. Un recurs per l'aula de secundària.La Química de l'olor. Un recurs per l'aula de secundària.
La Química de l'olor. Un recurs per l'aula de secundària.PepQuímic
 
Innovación: El arte de inventar el futuro. Capitulo 2
Innovación: El arte de inventar el futuro. Capitulo 2Innovación: El arte de inventar el futuro. Capitulo 2
Innovación: El arte de inventar el futuro. Capitulo 2JheimsArias
 
Rugby & puma
Rugby & pumaRugby & puma
Rugby & pumamarcoslb7
 
Final Media & Entertainment Industry_2506
Final Media & Entertainment Industry_2506Final Media & Entertainment Industry_2506
Final Media & Entertainment Industry_2506Tanushree Khanna
 
Visita medica areglando
Visita medica areglandoVisita medica areglando
Visita medica areglandojeorges
 
9 simulacrolpreescolar
9 simulacrolpreescolar9 simulacrolpreescolar
9 simulacrolpreescolarhaguar
 
Acabamentodecostura 140616200637-phpapp01
Acabamentodecostura 140616200637-phpapp01Acabamentodecostura 140616200637-phpapp01
Acabamentodecostura 140616200637-phpapp01Jaqueline Kuhn
 
[Slides] Real-Time Marketing: The Agility to Leverage Now
[Slides] Real-Time Marketing: The Agility to Leverage Now[Slides] Real-Time Marketing: The Agility to Leverage Now
[Slides] Real-Time Marketing: The Agility to Leverage NowAltimeter, a Prophet Company
 
Eric Worre-Go pro 7 pasos para convertirse en un profesional
Eric Worre-Go pro 7 pasos para convertirse en un profesionalEric Worre-Go pro 7 pasos para convertirse en un profesional
Eric Worre-Go pro 7 pasos para convertirse en un profesionalRafael Romero Romero
 

Viewers also liked (15)

La Química de l'olor. Un recurs per l'aula de secundària.
La Química de l'olor. Un recurs per l'aula de secundària.La Química de l'olor. Un recurs per l'aula de secundària.
La Química de l'olor. Un recurs per l'aula de secundària.
 
Innovación: El arte de inventar el futuro. Capitulo 2
Innovación: El arte de inventar el futuro. Capitulo 2Innovación: El arte de inventar el futuro. Capitulo 2
Innovación: El arte de inventar el futuro. Capitulo 2
 
Leer y escribir
Leer y escribirLeer y escribir
Leer y escribir
 
Progetto corsointerior caterina_palasciano
Progetto corsointerior caterina_palascianoProgetto corsointerior caterina_palasciano
Progetto corsointerior caterina_palasciano
 
Rugby & puma
Rugby & pumaRugby & puma
Rugby & puma
 
LogMeIn
LogMeInLogMeIn
LogMeIn
 
Implantologia exposicion iv
Implantologia exposicion ivImplantologia exposicion iv
Implantologia exposicion iv
 
Final Media & Entertainment Industry_2506
Final Media & Entertainment Industry_2506Final Media & Entertainment Industry_2506
Final Media & Entertainment Industry_2506
 
Visita medica areglando
Visita medica areglandoVisita medica areglando
Visita medica areglando
 
Educación Artística 2016
Educación Artística 2016Educación Artística 2016
Educación Artística 2016
 
9 simulacrolpreescolar
9 simulacrolpreescolar9 simulacrolpreescolar
9 simulacrolpreescolar
 
Acabamentodecostura 140616200637-phpapp01
Acabamentodecostura 140616200637-phpapp01Acabamentodecostura 140616200637-phpapp01
Acabamentodecostura 140616200637-phpapp01
 
[Slides] Real-Time Marketing: The Agility to Leverage Now
[Slides] Real-Time Marketing: The Agility to Leverage Now[Slides] Real-Time Marketing: The Agility to Leverage Now
[Slides] Real-Time Marketing: The Agility to Leverage Now
 
Eric Worre-Go pro 7 pasos para convertirse en un profesional
Eric Worre-Go pro 7 pasos para convertirse en un profesionalEric Worre-Go pro 7 pasos para convertirse en un profesional
Eric Worre-Go pro 7 pasos para convertirse en un profesional
 
13tercer molar
13tercer molar13tercer molar
13tercer molar
 

Similar to Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nuestra

ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosIrving Muñoz
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosIrving Muñoz
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]RootedCON
 
Derrotando a changos con scanners [Paulino Calderon]
Derrotando a changos con scanners [Paulino Calderon]Derrotando a changos con scanners [Paulino Calderon]
Derrotando a changos con scanners [Paulino Calderon]Websec México, S.C.
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Fredy Guibert
 
Presentación Black Hat #SBCongress
Presentación Black Hat #SBCongressPresentación Black Hat #SBCongress
Presentación Black Hat #SBCongressJVSEO
 
Más allá del testing
Más allá del testingMás allá del testing
Más allá del testingSergio Gil
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocinaEfren Diaz Gomez
 
Bootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationBootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationDomènec Vallès
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcursojorg_marq
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Lord of the codes: Visual Studio y todo lo que puedes hacer con él
Lord of the codes: Visual Studio y todo lo que puedes hacer con élLord of the codes: Visual Studio y todo lo que puedes hacer con él
Lord of the codes: Visual Studio y todo lo que puedes hacer con élQuique Fdez Guerra
 

Similar to Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nuestra (20)

Ruby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos RealesRuby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos Reales
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Reventando WordPress
Reventando WordPressReventando WordPress
Reventando WordPress
 
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
 
Derrotando a changos con scanners [Paulino Calderon]
Derrotando a changos con scanners [Paulino Calderon]Derrotando a changos con scanners [Paulino Calderon]
Derrotando a changos con scanners [Paulino Calderon]
 
Blinda y personaliza tu WordPress
Blinda y personaliza tu WordPress Blinda y personaliza tu WordPress
Blinda y personaliza tu WordPress
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0
 
20150415 roslyn
20150415 roslyn20150415 roslyn
20150415 roslyn
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Presentación Black Hat #SBCongress
Presentación Black Hat #SBCongressPresentación Black Hat #SBCongress
Presentación Black Hat #SBCongress
 
Lenguaje de programación Java
Lenguaje de programación Java Lenguaje de programación Java
Lenguaje de programación Java
 
Más allá del testing
Más allá del testingMás allá del testing
Más allá del testing
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocina
 
Javascript
JavascriptJavascript
Javascript
 
Bootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationBootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integration
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Lord of the codes: Visual Studio y todo lo que puedes hacer con él
Lord of the codes: Visual Studio y todo lo que puedes hacer con élLord of the codes: Visual Studio y todo lo que puedes hacer con él
Lord of the codes: Visual Studio y todo lo que puedes hacer con él
 

Recently uploaded

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nuestra