Resumen de mi charla sobre MongoDB sharding


mug201510133mug201510134

MongoDB User Group Madrid (meetup.com)

Fecha: 13/10/2015 19:00h.

Lugar: Edificio Telefónica Flagship Store. Calle Gran Vía, 28 28013 Madrid

Sala: Auditorio. Planta primera

Evento: MongoDB User Group Madrid (meetup.com)

Charla: Tag-based sharding

Ponente:  Juan Roy @juanroycouto

Charla: GridFS

Ponente:  Rafael Aranaz (Paradigma Tecnológico) @rafaranaz

Charla sobre Tag-based sharding (Juan Roy)

Comencé con esta pregunta a la audiencia: ¿pensáis que MongoDB nos puede ayudar/servir para distribuir a los alumnos de un colegio entre sus clases?

La primera parte de la presentación consistió en una explicación breve de lo que es un cluster, su objetivo, los componentes que tiene y la función de cada uno de ellos. Mi propósito era que todo el mundo (los menos expertos también) comprendiera esto, básico para poder seguir las siguientes partes de la exposición.

Con el mismo propósito introduje unos conceptos necesarios también para comprender el funcionamiento del sharding, como son: chunk, split, migration, balancer,…

La siguiente parte versó sobre dos aspectos del funcionamiento interno de MongoDB:

  1. Pasos de MongoDB para dividir un chunk
  2. Pasos de MongoDB para hacer una migración

Una vez llegado a este punto, y apoyándome en la pregunta inicial de la charla, expuse (y demostré de forma práctica) que MongoDB nos ofrece tres opciones para balancear a los alumnos de un colegio entre sus clases, que son:

  1. Sin intervenir nosotros. MongoDB divide los chunks en los rangos que le parece y distribuye esos chunks entre los shards de forma aleatoria. Así conseguimos tener el mismo número de alumnos (chunks) por clase (shard), pero los alumnos no han sido agrupados como nosotros necesitamos (por edades) sino como MongoDB ha estimado y, además, los tenemos repartidos en clases (shards) que no son las que les corresponden.
  2. La siguiente opción es hacer un pre-splitting. Mediante esta técnica somos nosotros los que creamos los rangos de los chunks (estamos agrupando a los niños por edades) pero la distribución de los chunks entre los shards la hace MongoDB y, por lo tanto, no tenemos a los niños en sus clases.
  3. Por último, recurrimos al tag-based sharding. Este etiquetado nos permite agrupar a los niños por edades y decirles a qué clase tienen que ir. Para ello, damos un nombre a cada shard y a cada chunk le asignamos el nombre del shard donde queremos que se guarde.

Para acabar tuvimos el turno de preguntas y expuse que mongodbspain.com está buscando colaboradores.

¿Qué conclusiones me llevo yo?

  • El marco (edificio y sala) y los medios estupendos.
  • La gente, fenomenal.
  • La asistencia escasa, quizá la lluvia y ser después de un festivo influyó.
  • Duración de la charla, con preguntas incluidas, casi una hora. Más larga de lo habitual en estas reuniones. De eliminar algo tuviera que haber sido la exposición inicial de lo que es un cluster y sus componentes. Aún así, creo que era necesario para no dejar fuera a los menos expertos con MongoDB.
  • La demostración práctica salió sin ningún problema y complementó perfectamente la explicación teórica.

Comentarios de la gente en meetup.com

Javier Nieto

Una charla muy instructiva.

Sergio Romero Carrizosa

Una buena charla en la que aprendí muchas cositas y que me dejó con ganas de aprender más, muchas gracias a todos por compartir vuestro tiempo.

Saludos

Pablo Sancho

Muchas gracias. Muy interesante

 

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

uno × 4 =