A partir de MongoDB 8.0, puede configurar un servidor de configuración para almacenar los datos de su aplicación además de los metadatos habituales de clústeres fragmentados. Un nodo mongod que proporciona tanto la funcionalidad de servidor de configuración como de servidor de fragmentos se denomina fragmento de configuración. Un nodo mongod que se ejecuta como un --configsvr autónomo sin funcionalidad de servidor de fragmentos se denomina servidor de configuración dedicado.
Un clúster debe tener un servidor de configuración, que puede ser una partición de configuración (servidor de configuración integrado/embedded config server) o un servidor de configuración dedicado (dedicated config server). Utilizar una partición de configuración reduce la cantidad de nodos requeridos y puede simplificar su implementación. Un clúster de partición de configuración también se conoce como clúster de servidor de configuración integrado. No se puede utilizar el mismo servidor de configuración para varios clústeres particionados.
Casos de uso
Una partición de configuración tiene un costo menor que un servidor de configuración dedicado porque un servidor de configuración dedicado se ejecuta como su propio set de réplicas. Una partición de configuración combina el rol de servidor de configuración en el set de réplicas de una partición existente, por lo tanto, su clúster necesita un set de réplicas en lugar de dos. El uso de una partición de configuración no tiene un impacto medible en el rendimiento con un número bajo de particiones. Un servidor de configuración dedicado aísla los metadatos del clúster de los datos de la aplicación, lo que requieren ciertas funcionalidades.
Utilice un servidor de configuración dedicado si utiliza una o más de las siguientes funcionalidades:
Queryable Encryption collections
Copias de seguridad consultables (en las instalaciones)
En MongoDB Atlas, un clúster pasa automáticamente de una partición de configuración a un servidor de configuración dedicado cuando el clúster tiene más de tres particiones.
Comportamiento
En un clúster de servidores de configuración integrados, se utilizará una partición de configuración para almacenar los metadatos del clúster y los datos del usuario. Ayuda a reducir la complejidad de una implementación de clúster particionado.
Puedes almacenar datos de colecciones particionados y no particionados en tu partición de configuración. Tiene todas las propiedades de una partición y además actúa como el servidor de configuración.
Confirmar el uso de Config partición
Para confirmar que un clúster utiliza una partición de configuración, ejecuta el comando listShards en la base de datos admin mientras estás conectado a un mongos e inspecciona la salida en busca de un documento donde _id esté configurado en "config". Si la salida de listShards no contiene un documento donde _id esté configurado en "config", el clúster no utiliza una partición de configuración.
El siguiente ejemplo ejecuta el comando listShards e intenta encontrar un documento donde _id esté establecido en "config".
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
En este ejemplo, el documento devuelto tiene _id asignado a "config", lo que confirma que este clúster utiliza una partición de configuración.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
Comandos
Para configurar un servidor de configuración dedicado para que funcione como un fragmento de configuración, ejecute el comando transitionFromDedicatedConfigServer.
Para configurar un fragmento de configuración para que funcione como un servidor de configuración dedicado, ejecute el comando transitionToDedicatedConfigServer.