Estoy tratando de entender MongoDB y el concepto de sharding. Si comenzamos con 2 nodos y partición, digamos datos de cliente, basados en el apellido donde se almacenan datos de A a M en el nodo 1 y N a Z los datos se almacenan en el nodo 2. ¿Qué sucede cuando queremos escalar y agregar más nodos? ? Simplemente no veo cómo funcionará.MongoDB sharding, ¿cómo se equilibra al agregar nuevos nodos?
Respuesta
Si tiene 2 nodos, no significa que los datos estén divididos en 2 fragmentos. Se puede por particiones de digamos 10 trozos y 6 de ellos se encuentran en el servidor 1 ane resto está en el servidor 2.
Cuando se agrega otro servidor MongoDB es capaz de redistribuir esos trozos entre los nodos de nueva configuración
Usted puede leer más en documentos oficiales:
Si hay varios fragmentos disponibles, MongoDB comenzará a migrar datos a otros fragmentos una vez que tenga una cantidad suficiente de fragmentos. Esta migración se denomina balanceo y es realizada por un proceso llamado equilibrador. El equilibrador mueve trozos de un fragmento a otro.
Para que se produzca una ronda de equilibrio, un fragmento debe tener al menos nueve fragmentos más que el fragmento menos poblado . En ese punto, los trozos se migrarán desde el fragmento lleno de gente hasta que esté parejo con el resto de los fragmentos.
Cuando agrega un nuevo nodo al clúster, MongoDB redistribuye esos fragmentos entre los nodos de la nueva configuración. Es un pequeño extracto, para obtener una comprensión completa de cómo se vuelve a equilibrar al agregar un nuevo nodo, lea el capítulo 2 "Descripción del deshilado" del libro de Kristina Chodrow "Scaling MongoDB"
- 1. Agregar nuevos nodos al diseño dirigido a la fuerza
- 2. ¿Cómo agregar nuevos métodos al objeto jQuery?
- 3. Mongodb, sharding y múltiples servicios de Windows
- 4. replicación mongoDB + sharding en 2 servidores razonable?
- 5. Clasificar TreeView automáticamente al agregar nodos
- 6. cómo crear insertar nuevos nodos en JsonNode?
- 7. usando XSL para reemplazar nodos XML con nodos nuevos
- 8. Sharding e índices
- 9. Erlang Wx: cómo agregar nuevos widgets
- 10. ¿Cómo equilibra la carga del tráfico TCP?
- 11. Cómo agregar nuevos usuarios a TFS 2010
- 12. ¿Cómo puedo agregar nuevos códecs para matlab?
- 13. ¿Por qué no se compromete git -a agregar nuevos archivos?
- 14. Cómo agregar nodos en DevExpress TreeList programmatically?
- 15. Auto sharding postgresql?
- 16. Cómo agregar nuevos fragmentos a snipMate en VIM
- 17. Redis en Heroku Sharding
- 18. Sharding en el nivel de aplicación
- 19. actualizar JFrame después de agregar nuevos componentes
- 20. Sharding por ObjectID, ¿es el camino correcto?
- 21. UIScrollView se desplaza aleatoriamente al agregar contenido
- 22. Cómo hacer MongoDB Server se inicie al iniciar Linux (CentOS)
- 23. JSON anidado: cómo agregar (empujar) elementos nuevos a un objeto?
- 24. Sharding y transacciones con MySQL
- 25. Cómo agregar nodos secundarios al control de usuario asp.net personalizado derivado de System.Web.UI.Control
- 26. redis sharding, pipelining y round-trips
- 27. ¿Cómo agregar un valor de matriz a los nuevos FormData?
- 28. Cómo crear un vector R vacío para agregar nuevos elementos
- 29. d3.js cómo agregar nodos dinámicamente a un árbol
- 30. ¿Cómo se obtiene un paquete SSIS para insertar solo nuevos registros al copiar datos entre servidores?