Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

analyseShardKey (comando de base de datos)

analyzeShardKey

Nuevo en la versión 7.0.

Calcula métricas para evaluar una clave de partición para una colección no particionada o particionada. Las métricas se basan en consultas de muestra. Puedes usar configureQueryAnalyzer para configurar el muestreo de consultas en una colección.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

analyzeShardKey tiene esta sintaxis:

db.collection.analyzeShardKey(
<shardKey>,
{
keyCharacteristics: <bool>,
readWriteDistribution: <bool>,
sampleRate: <double>,
sampleSize: <int>
}
)
Campo
Tipo
Necesidad
Descripción

shardKey

Documento

Requerido

Clave de partición a analizar. Esto puede ser una clave candidata de partición para una colección no particionada o particionada, o la clave actual de partición para una colección particionada.

No hay ningún valor por defecto.

keyCharacteristics

booleano

Opcional

Si se calculan o no las métricas sobre las características de la clave de partición. Para obtener detalles, consulta keyCharacteristics.

Se establece por defecto en true.

readWriteDistribution

booleano

Opcional

Si se calculan o no las métricas sobre la distribución de lecturas y guardados. Para más detalles, consulta readWriteDistribution.

Se establece por defecto en true.

Para devolver las métricas de distribución de lectura y guardar de una colección utilizando analyzeShardKey, debes configurar el analizador de queries para poder muestrear las queries que se ejecutar en la colección. De lo contrario, analyzeShardKey devuelve las métricas de distribución de lectura y escritura como valores de 0. Para configurar el analizador de consultas, consulte configureQueryAnalyzer (comando de base de datos).

sampleRate

doble

Opcional

La proporción de documentos de la colección que se muestrea al calcular las métricas sobre las características de la clave de fragmento. Si se establece sampleRate, no se puede establecer sampleSize.

Debe ser mayor que 0, hasta e incluyendo 1.

No hay ningún valor por defecto.

sampleSize

entero

Opcional

El número de documentos que se muestrearán al calcular las métricas sobre las características de la clave de fragmento. Si se establece sampleSize, no se puede establecer sampleRate.

Si no se especifica y sampleRate no se especifica, el tamaño de la muestra se define por defecto en el tamaño de la muestra establecido por analyzeShardKeyCharacteristicsDefaultSampleSize.

analyzeShardKey devuelve diferentes métricas dependiendo de los valores keyCharacteristic y readWriteDistribution que especifiques al ejecutar el método.

keyCharacteristic Consiste en las métricas sobre la cardinalidad, frecuencia y monotonía de la clave del fragmento. Estas métricas solo se devuelven cuando keyCharacteristics es verdadero.

Las métricas se calculan cuando se ejecuta analyzeShardKey en función de los documentos muestreados de la colección. El cálculo requiere que la clave de partición tenga un índice de soporte. Si no hay un índice de apoyo, no se devuelven métricas.

Puedes configurar el muestreo con los campos sampleRate y sampleSize. Ambos son opcionales, pero solo se puede especificar uno. Cuando ni sampleRate ni sampleSize están especificados, MongoDB utiliza el valor del parámetro analyzeShardKeyCharacteristicsDefaultSampleSize, que tiene un valor por defecto de 10 millones.

Para calcular métricas basadas en todos los documentos de la colección, establece el sampleRate en 1.

readWriteDistribution contiene métricas sobre los patrones de enrutamiento de consultas y la popularidad de los rangos de claves de fragmentos. Estas métricas se basan en consultas de muestra.

Para configurar el muestreo de query para una colección, usa el comando configureQueryAnalyzer. Las métricas de distribución de lectura y guardado solo se devuelven si readWriteDistribution es true. Las métricas se calculan cuando analyzeShardKey se ejecuta y las métricas usan las consultas de lectura y escritura seleccionadas. Si no hay queries muestreadas, no se devuelven las métricas de distribución de lectura y escritura.

  • Si no hay consultas de lectura muestreadas, el comando devuelve writeDistribution pero omite readDistribution.

  • Si no hay queries de guardar muestreadas, el comando devuelve readDistribution pero omite writeDistribution.

Para devolver métricas de distribución de lectura y guardado para una colección usando analyzeShardKey, debes configurar el analizador de querys para muestrear las querys ejecutadas en la colección. De lo contrario, analyzeShardKey devuelve las métricas de distribución de lectura y escritura como valores 0. Para configurar el analizador de consultas, consulta configureQueryAnalyzer (comando de base de datos).

keyCharacteristics Valor
readWriteDistribution Valor
Resultados devueltos

true

false

false

true

analyzeShardKey retorna readWriteDistribution métricas y omite keyCharacteristics métricas.

true

true

  • analyzeShardKey devuelve tanto las readWriteDistribution métricas como las keyCharacteristics métricas.

  • Si la clave de fragmento no tiene un índice de soporte, analyzeShardKey devuelve readWriteDistribution métricas y omite keyCharacteristics métricas.

analyzeShardKey no bloquea lecturas ni escrituras en la colección.

La calidad de las métricas sobre la distribución de lectura y escritura se determina por cuán representativo es la carga de trabajo cuando ocurre el muestreo de consultas. Para algunas aplicaciones, devolver métricas representativas puede requerir mantener el muestreo de query activado durante varios días.

El índice de soporte requerido por analyzeShardKey es diferente del índice de soporte requerido por el shardCollection comando.

Esta tabla muestra los índices de soporte para la misma clave de fragmento tanto para analyzeShardKey como para shardCollection:

Comando
clave de partición
Índices de soporte

analyzeShardKey

{ a.x: 1, b: "hashed" }

  • { a.x: 1, b: 1, ... }

  • { a.x: "hashed", b: 1, ... }

  • { a.x: 1, b: "hashed", ... }

  • { a.x: "hashed", b: "hashed", ...}

shardCollection

{ a.x: 1, b: "hashed" }

{ a.x: 1, b: "hashed", ... }

Esto permite analizar una clave de partición que puede que aún no tenga un índice compatible necesario para particionarla.

Tanto analyzeShardKey como shardCollection tienen los siguientes requisitos de índice:

Para crear índices de apoyo, utilice el db.collection.createIndex() método.

Para minimizar el rendimiento, ejecuta analyzeShardKey con la preferencia de lectura secondary o secondaryPreferred. En un clúster fragmentado, mongos establece automáticamente la preferencia de lectura en secondaryPreferred si no se especifica.

  • No puedes ejecutar analyzeShardKey en Atlas clústeres flexibles.

  • No se puede ejecutar analyzeShardKey en implementaciones autónomas.

  • No puedes ejecutar analyzeShardKey directamente contra un --shardsvr set de réplicas. Al ejecutarse en un clúster fragmentado, analyzeShardKey debe ejecutarse contra un mongos.

  • No se puede ejecutar analyzeShardKey en colecciones de series temporales.

  • No se puede ejecutar analyzeShardKey en colecciones con Queryable Encryption.

analyzeShardKey requiere uno de estos roles:

analyzeShardKey devuelve información sobre keyCharacteristics y readWriteDistribution.

  • keyCharacteristics proporciona métricas sobre la cardinalidad, la frecuencia y la monotonicidad de la clave de partición.

  • readWriteDistribution proporciona métricas sobre los patrones de enrutamiento de query y el nivel de actividad de los rangos de claves de particiones.

Esta es la estructura del documento keyCharacteristics que se devuelve cuando se establece keyCharacteristics en true:

{
keyCharacteristics: {
numDocsTotal: <integer>,
numOrphanDocs: <integer>,
avgDocSizeBytes: <integer>,
numDocsSampled: <integer>,
isUnique: <bool>,
numDistinctValues: <integer>,
mostCommonValues: [
{ value: <shardkeyValue>, frequency: <integer> },
...
],
monotonicity: {
recordIdCorrelationCoefficient: <double>,
type: "monotonic"|"not monotonic"|"unknown",
}
}
}
Campo
Tipo
Descripción
Uso

numDocsTotal

entero

El número de documentos en la colección.

numOrphanDocs

entero

El número de documentos huérfanos.

Los documentos huérfanos no se excluyen del cálculo de métricas por motivos de rendimiento. Si numOrphanDocs es grande en relación con numDocsTotal, considere esperar hasta que el número de documentos huérfanos sea muy pequeño en comparación con el número total de documentos de la colección para ejecutar el comando.

avgDocSizeBytes

entero

El tamaño promedio de los documentos en la colección, en bytes.

Si numDocsTotal es comparable a numDocsSampled, puedes estimar el tamaño de los fragmentos más grandes multiplicando el frequency de cada mostCommonValues por avgDocSizeBytes.

numDocsSampled

entero

El número de documentos muestreados.

numDistinctValues

entero

El número de valores distintos de clave shard.

Elige una clave de partición con un gran numDistinctValues, ya que el número de valores distintos de la clave de partición es el número máximo de fragmentos que el balanceador puede crear.

isUnique

booleano

Indica si la clave de partición es única. Esto solo se configura en true si existe un índice único para la clave de partición.

Si la clave de partición es única, entonces el número de valores distintos es igual al número de documentos.

mostCommonValues

arreglo de documentos

Un arreglo de valor y frequency (número de documentos) de los valores de la clave de partición más comunes.

La frecuencia de un valor de la clave de partición es el número mínimo de documentos en el fragmento que contiene ese valor. Si la frecuencia es grande, entonces el fragmento puede convertirse en un cuello de botella para el almacenamiento, las lecturas y las escrituras. Elija una clave de partición donde la frecuencia de cada valor más común sea baja en relación con numDocsSampled.

El número de los valores de la clave de partición más comunes se puede configurar mediante ajuste de analyzeShardKeyNumMostCommonValues, que tiene como valor predeterminado 5. Para evitar superar el límite de tamaño BSON de 16 MB para la respuesta, cada valor se establece en "truncado" si su tamaño supera los 15 MB / <a class=\" \" href=\"\">analizarShardKey NumMostCommonValues.

mostCommonValues[n].value

Documento

La clave de partición.

mostCommonValues[n].frequency

entero

El número de documentos para una clave de partición determinada.

Elija una clave de partición donde la frecuencia de cada valor más común sea baja en relación con numDocsSampled.

monotonicity. recordIdCorrelationCoefficient

doble

Solo se establece si se conoce la monotonía.

Esto se establece en "unknown" cuando se cumple una de las siguientes condiciones:

  • La clave de partición no tiene un índice que la respalde por shardCollection definición.

  • La colección está agrupada.

  • La clave de partición es una clave de partición compuesta encriptada, donde el campo que se encripta no es el primer campo.

La verificación de monotonía puede devolver un resultado incorrecto si la colección ha pasado por migraciones de fragmentos. La migración de fragmentos elimina los documentos de la partición donante y los vuelve a insertar en la partición receptora. No existe ninguna garantía de que se preserve el orden de inserción del cliente.

Puedes configurar el umbral para el coeficiente de correlación con analyzeShardKeyMonotonicity CorrelationCoefficientThreshold.

monotoncity.type

string

Puede ser una de:

"monotonic", "not monotonic", "unknown"

Evita una clave de partición (shard key) del tipo "monotonic", a menos que no esperes insertar nuevos documentos con frecuencia.

Si una colección está particionada en una clave de partición que aumenta o disminuye de manera monótona, los nuevos documentos se insertarán en la partición que posea el fragmento MaxKey o MinKey. Esa partición puede convertirse en el cuello de botella para las inserciones y es probable que los datos no estén equilibrados la mayor parte del tiempo, ya que el balanceador tendrá que competir con las inserciones que lleguen.

Esta es la estructura del documento que se devuelve cuando readWriteDistribution está configurado en true:

{
readDistribution: {
sampleSize: {
total: <integer>,
find: <integer>,
aggregate: <integer>,
count: <integer>,
distinct: <integer>
},
percentageOfSingleShardReads: <double>,
percentageOfMultiShardReads: <double>,
percentageOfScatterGatherReads: <double>,
numReadsByRange: [
<integer>,
...
]
},
writeDistribution: {
sampleSize: {
total: <integer>,
update: <integer>,
delete: <integer>,
findAndModify: <integer>
},
percentageOfSingleShardWrites: <double>,
percentageOfMultiShardWrites: <double>,
percentageOfScatterGatherWrites: <double>,
numWritesByRange: [
<integer>,
...
],
percentageOfShardKeyUpdates: <double>,
percentageOfSingleWritesWithoutShardKey: <double>,
percentageOfMultiWritesWithoutShardKey: <double>
}
}

Para devolver métricas de distribución de lectura y guardado para una colección usando analyzeShardKey, debes configurar el analizador de querys para muestrear las querys ejecutadas en la colección. De lo contrario, analyzeShardKey devuelve las métricas de distribución de lectura y escritura como valores 0. Para configurar el analizador de consultas, consulta configureQueryAnalyzer (comando de base de datos).

Campo
Tipo
Descripción
Uso

sampleSize.total

entero

La cantidad total de queries de lectura muestreados.

sampleSize.find

entero

Número total de consultas muestreadas find.

sampleSize.aggregate

entero

Número total de consultas muestreadas aggregate.

sampleSize.count

entero

Número total de consultas muestreadas count.

sampleSize.distinct

entero

Número total de consultas muestreadas distinct.

percentageOfSingleShardReads

doble

Porcentaje de lecturas que apuntan a un solo fragmento, independientemente de cómo se distribuyan los datos.

percentageOfMultiShardReads

doble

Porcentaje de lecturas que se dirigen a varias particiones.

Esta categoría incluye las lecturas que pueden tener como objetivo solo un fragmento si los datos se distribuyen de tal manera que los valores a los que apunta la lectura caen bajo un solo fragmento.

Si las consultas operan en una gran cantidad de datos, entonces apuntar a múltiples fragmentos en lugar de uno puede resultar en una disminución en la latencia debido a la ejecución de consultas en paralelo.

percentageOfScatterGatherReads

doble

Porcentaje de lecturas que son scatter-gather, independientemente de cómo se distribuyan los datos.

Evita una clave de partición con un valor elevado para esta métrica. Si bien las consultas de dispersión-recolección tienen un bajo impacto en las particiones que no contienen los datos de destino, todavía tienen algún impacto en el rendimiento.

En un clúster con una gran cantidad de particiones, las queries scatter-gather tienen un rendimiento significativamente peor que las queries que se dirigen a una única partición.

numReadsByRange

arreglo de enteros

Arreglo de números que representan el número de veces que se ataca cada rango ordenado de MinKey a MaxKey.

Evita una clave de partición donde la distribución de numReadsByRange sea muy sesgada, ya que eso implica que probablemente haya uno o más particiones activas para la lectura.

Elija una clave de fragmento donde la suma de numReadsByRange sea similar a sampleSize.total.

El número de rangos se puede configurar usando el parámetro analyzeShardKeyNumRanges, cuyo valor por defecto es 100. El valor es 100 porque el objetivo es encontrar una clave de partición que se escale hasta 100 particiones.

Campo
Tipo
Descripción
Uso

sampleSize.total

entero

La cantidad total de queries de escritura muestreados.

sampleSize.update

entero

Número total de consultas muestreadas update.

sampleSize.delete

entero

Número total de consultas muestreadas delete.

sampleSize.findAndModify

entero

Número total de consultas muestreadas findAndModify.

percentageOfSingleShardWrites

doble

Porcentaje de escrituras que tienen como objetivo un solo fragmento, independientemente de cómo se distribuyan los datos.

percentageOfMultiShardWrites

doble

Porcentaje de escrituras que tienen como objetivo varias particiones.

Esta categoría incluye las escrituras que pueden dirigirse solo a una sola partición si los datos están distribuidos de tal manera que los valores a los que se dirige la escritura caen en una sola partición.

percentageOfScatterGatherWrites

doble

Porcentaje de escrituras que son scatter-gather, independientemente de cómo se distribuya la información.

Evita una clave de partición con un valor alto para esta métrica, ya que generalmente es más eficiente que un guardado se dirija a una única partición.

numWritesByRange

arreglo de enteros

Arreglo de números que representan el número de veces que se ataca cada rango ordenado de MinKey a MaxKey.

Evita una clave de partición donde la distribución de numWritesByRange esté muy sesgada, ya que eso implica que probablemente haya uno o más particiones activas para escrituras.

Elija una clave de fragmento donde la suma de numWritesByRange sea similar a sampleSize.total.

El número de rangos se puede configurar usando el parámetro analyzeShardKeyNumRanges, cuyo valor por defecto es 100. El valor es 100 porque el objetivo es encontrar una clave de partición que se escale hasta 100 particiones.

percentageOfShardKeyUpdates

doble

Porcentaje de consultas de escritura que actualizan el valor de la clave de partición de un documento.

Evite usar una clave de fragmento con un valor alto de. Actualizar el percentageOfShardKeyUpdates valor de la clave de fragmento de un documento puede provocar que este se mueva a otro fragmento, lo que requiere la ejecución de una transacción interna en el fragmento al que se dirige la consulta. Para obtener más información sobre cómo cambiar el valor de la clave de fragmento de un documento, consulte Cambiar una clave de fragmento.

Actualmente, las actualizaciones solo se admiten como escrituras reintentables o en una transacción, y tienen un límite de tamaño de lote de 1.

percentageOfSingleWritesWithoutShardKey

doble

El porcentaje de consultas de escritura que son multi=false y no se pueden dirigir a un solo fragmento.

Evita una clave de partición con un valor alto para esta métrica.

Realizar este tipo de guardado es costoso porque puede implicar la ejecución de transacciones internas.

percentageOfMultiWritesWithoutShardKey

doble

El porcentaje de consultas de escritura que son multi=true y no se pueden dirigir a un solo fragmento.

Evita una clave de partición con un valor alto para esta métrica.

Considere una versión simplificada de una aplicación de redes sociales. La colección que intentamos fragmentar es la colección post.

Los documentos en la colección post tienen el siguiente esquema:

{
userId: <uuid>,
firstName: <string>,
lastName: <string>,
body: <string>, // the field that can be modified.
date: <date>, // the field that can be modified.
}
  • La aplicación tiene 1500 usuarios.

  • Hay 30 apellidos y 45 nombres, algunos más comunes que otros.

  • Hay tres usuarios famosos.

  • Cada usuario sigue exactamente a cinco usuarios más y tiene una probabilidad muy alta de seguir al menos a un usuario famoso.

  • Cada usuario publica alrededor de dos publicaciones al día en horarios aleatorios. Editan cada publicación una vez, justo después de que se haya publicado.

  • Cada usuario inicia sesión cada seis horas para leer su propio perfil y las publicaciones de los usuarios que sigue de las últimas 24 horas. También responden bajo una publicación aleatoria de las últimas tres horas.

  • Para cada usuario, la aplicación remueve las publicaciones que tienen más de tres días a la medianoche.

Esta carga de trabajo tiene los siguientes patrones de query:

  • find comando con filtro { userId: , firstName: , lastName: }

  • find comando con filtro { $or: [ { userId: , firstName: , lastName: , date: { $gte: } }, ... , { userId: , date: } ] }

  • findAndModify comando con filtro { userId: , firstName: , lastName: , date: } para actualizar el cuerpo y la fecha del campo.

  • update comando con multi: false y filtro { userId: , firstName: , lastName: , date: { $gte: , $lt: } } para actualizar el cuerpo y el campo de fecha.

  • delete comando con multi: true y filtro { userId: , firstName: , lastName: , date: { $lt: } }

A continuación se muestran métricas de ejemplo devueltas por el comando analyzeShardKey para algunas claves de fragmentos candidatas, con consultas de muestra recopiladas durante siete días de carga de trabajo.

Nota

Antes de ejecutar los comandos analyzeShardKey, lee la sección Índices de soporte que aparece antes en esta página. Si necesitas índices de soporte para la clave de partición que estás analizando, utiliza el método db.collection.createIndex() para crear los índices.

Este ejemplo utiliza el comando analyzeShardKey para proporcionar métricas sobre la clave de partición { _id: 1 } en la colección social.post.

El siguiente bloque de código utiliza para activar el muestreo de db.collection.configureQueryAnalyzer() consultas:

use social
db.post.configureQueryAnalyzer(
{
mode: "full",
samplesPerSecond: 5
}
)

Después de que db.collection.configureQueryAnalyzer() recopila muestras de consultas, el siguiente bloque de código usa el comando analyzeShardKey para muestrear documentos 10,000 y calcular resultados:

use social
db.post.analyzeShardKey(
{ _id: 1 },
{
keyCharacteristics: true,
readWriteDistribution: false,
sampleSize: 10000
}
)

Este comando analyzeShardKey proporciona métricas sobre la clave de partición { lastName: 1 } de la colección social.post:

use social
db.post.analyzeShardKey(
{ lastName: 1 },
{
keyCharacteristics: true,
readWriteDistribution: false
}
)

La salida para este ejemplo se asemeja a lo siguiente:

{
"keyCharacteristics": {
"numDocsTotal" : 9039,
"avgDocSizeBytes" : 153,
"numDocsSampled" : 9039,
"isUnique" : false,
"numDistinctValues" : 30,
"mostCommonValues" : [
{
"value" : {
"lastName" : "Smith"
},
"frequency" : 1013
},
{
"value" : {
"lastName" : "Johnson"
},
"frequency" : 984
},
{
"value" : {
"lastName" : "Jones"
},
"frequency" : 962
},
{
"value" : {
"lastName" : "Brown"
},
"frequency" : 925
},
{
"value" : {
"lastName" : "Davies"
},
"frequency" : 852
}
],
"monotonicity" : {
"recordIdCorrelationCoefficient" : 0.0771959161,
"type" : "not monotonic"
},
}
}

Este comando analyzeShardKey proporciona métricas sobre la clave de partición { userId: 1 } de la colección social.post:

use social
db.post.analyzeShardKey(
{ userId: 1 },
{
keyCharacteristics: true,
readWriteDistribution: false
}
)

La salida para este ejemplo se asemeja a lo siguiente:

{
"keyCharacteristics": {
"numDocsTotal" : 9039,
"avgDocSizeBytes" : 162,
"numDocsSampled" : 9039,
"isUnique" : false,
"numDistinctValues" : 1495,
"mostCommonValues" : [
{
"value" : {
"userId" : UUID("aadc3943-9402-4072-aae6-ad551359c596")
},
"frequency" : 15
},
{
"value" : {
"userId" : UUID("681abd2b-7a27-490c-b712-e544346f8d07")
},
"frequency" : 14
},
{
"value" : {
"userId" : UUID("714cb722-aa27-420a-8d63-0d5db962390d")
},
"frequency" : 14
},
{
"value" : {
"userId" : UUID("019a4118-b0d3-41d5-9c0a-764338b7e9d1")
},
"frequency" : 14
},
{
"value" : {
"userId" : UUID("b9c9fbea-3c12-41aa-bc69-eb316047a790")
},
"frequency" : 14
}
],
"monotonicity" : {
"recordIdCorrelationCoefficient" : -0.0032039729,
"type" : "not monotonic"
},
}
}

Este comando analyzeShardKey proporciona métricas sobre la clave de partición { userId: 1 } de la colección social.post:

use social
db.post.analyzeShardKey(
{ userId: 1 },
{
keyCharacteristics: false,
readWriteDistribution: true
}
)

La salida para este ejemplo se asemeja a lo siguiente:

{
"readDistribution" : {
"sampleSize" : {
"total" : 61363,
"find" : 61363,
"aggregate" : 0,
"count" : 0,
"distinct" : 0
},
"percentageOfSingleShardReads" : 50.0008148233,
"percentageOfMultiShardReads" : 49.9991851768,
"percentageOfScatterGatherReads" : 0,
"numReadsByRange" : [
688,
775,
737,
776,
652,
671,
1332,
1407,
535,
428,
985,
573,
1496,
...
],
},
"writeDistribution" : {
"sampleSize" : {
"total" : 49638,
"update" : 30680,
"delete" : 7500,
"findAndModify" : 11458
},
"percentageOfSingleShardWrites" : 100,
"percentageOfMultiShardWrites" : 0,
"percentageOfScatterGatherWrites" : 0,
"numWritesByRange" : [
389,
601,
430,
454,
462,
421,
668,
833,
493,
300,
683,
460,
...
],
"percentageOfShardKeyUpdates" : 0,
"percentageOfSingleWritesWithoutShardKey" : 0,
"percentageOfMultiWritesWithoutShardKey" : 0
}
}

Volver

addShardToZone

En esta página