English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Escalado horizontal en MongoDB

Sharding is the process of storing data records across multiple machines, which is MongoDB's method to meet the needs of data growth. As the size of the data increases, a single machine may not be enough to store the data and may also not provide an acceptable read and write throughput. Sharding solves the problem of horizontal scaling. By sharding, you can add more computers to support the needs of data growth and read and write operations.

Why shard?

  • In replication, all writes are routed to the primary node

  • Queries sensitive to latency are still routed to the primary node

  • The limit of a single replica set is12nodes

  • When the activity dataset is very large, the memory may not be large enough

  • El disco local no es lo suficientemente grande

  • La expansión vertical es demasiado cara

Particiones en MongoDB

La siguiente imagen muestra las particiones en MongoDB que utilizan conjuntos de particiones.

En la siguiente imagen, hay tres componentes principales-

  • Particiones−Las particiones se utilizan para almacenar datos. Ofrecen alta disponibilidad y consistencia de datos. En entornos de producción, cada partición es un conjunto de replicación separado.

  • Servidores de configuración−Los servidores de configuración almacenan los metadatos del clúster. Estos datos contienen el mapeo de los conjuntos de datos del clúster a las particiones. Los routers de consultas utilizan estos metadatos para dirigir las operaciones a una partición específica. En entornos de producción, los conjuntos de partición tienen exactamente3configuración de servidores.

  • Routers de consulta−El router de consultas básicamente es una instancia de mongo, que puede interfazarse con aplicaciones de clientes y guiar directamente las operaciones a la partición adecuada. El router de consultas procesa las operaciones, las localiza en la partición y luego devuelve los resultados al cliente. Los conjuntos de partición pueden contener varios routers de consultas para dividir la carga de solicitudes del cliente. Los clientes envían solicitudes a un router de consultas. Generalmente, los conjuntos de partición tienen muchos routers de consultas.