Configuración de Cosmos DB
Basado en las pruebas de rendimiento que se realizaron, las siguientes claves de partición e índices deben ser definidos en el CSM Reachability base de datos.
Rendimiento Recomendado para Bank Directory Plus en Cosmos DB
Configuraciones recomendadas para la ingestión de la Entidad de Partido para BANKDIRECTORYPLUS archivo completo:
Tamaño del archivo: ~1. 5 millones de registros
| Elemento de Configuración | Valor | Propiedad de ConfigMap |
|---|---|---|
Rendimiento |
|
Esquema de Cosmos DB |
Paralelismo directo |
|
|
Paralelismo de identificadores de entidades de partido |
|
|
Paralelismo de entidades de partido |
|
|
Estos valores se determinaron a través de pruebas de rendimiento, reduciendo el tiempo de ingestión de aproximadamente 175 minutos a aproximadamente 45 minutos.
Rendimiento recomendado para el archivo IDENTIFICADORES-ALL de Party Entity en Cosmos DB
Rendimiento recomendado para la ingestión de la entidad de partido para IDENTIFIERS-ALL archivo completo:
Tamaño del archivo: ~4. 9 millones de registros, pero después de algunas operaciones de filtrado, 3 115 384 registros son ingeridos.
| Elemento de Configuración | Valor | Propiedad de ConfigMap |
|---|---|---|
Rendimiento |
|
Esquema de Cosmos DB |
Paralelismo directo |
|
|
Paralelismo de identificadores de entidades de partido |
|
|
Paralelismo de entidades de partido |
|
|
Estos valores se determinaron a través de pruebas de rendimiento, con un tiempo de ingestión ~160 minutos .
Para tanto Bank Directory Plus como Identifiers-ALL, ajuste según sea necesario, de acuerdo con las futuras pruebas de carga y los requisitos comerciales.
Claves de partición
Para tener un tiempo normal de procesamiento de archivos grandes en CosmosDB, necesitamos añadir claves de partición para cada colección. La clave de partición debe ser añadida directamente en el portal de Azure. La forma de añadir claves de partición:
Primero necesitamos abrir la consola de Mongo y escribir use {database_name} e.j.
use ipf-csm-test
Después de que haya cambiado a la base de datos requerida, escriba los comandos a continuación:
db.runCommand({customAction:"CreateCollection", collection: "settings-approvals", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-history", shardKey:"_entityId"})
db.runCommand({customAction:"CreateCollection", collection: "settings-agent-settings", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-agent-clearing-settings", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-agent-settlement-settings", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-cs-agent-selection-settings", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-iban-plus", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-iban-structure", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-participant", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-processing-entity", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-party-entity", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-generic-processing-settings", shardKey:"_id"})
db.runCommand({customAction:"CreateCollection", collection: "settings-bicdir2018", shardKey:"_id"})
Los índices a continuación son necesarios para el correcto funcionamiento y el rendimiento óptimo de la aplicación. Deben ser creados automáticamente al iniciar la aplicación. Si no se han creado automáticamente (generalmente un problema que ocurre con las implementaciones de Cosmos) por favor asegúrese de que las siguientes sobreescrituras estén en su lugar
ipf.mongodb.max-retry= 6
ipf.mongodb.retryable-error-codes= [16500, 48]
ipf.mongodb.delay-duration= 1000ms
Durante las pruebas, se descubrió que la creación de índices programáticos en Cosmos fallaría ocasionalmente y necesitaría un mayor número de reintentos para garantizar el éxito. Las sobreescrituras mencionadas han sido probadas y confirmadas para asegurar que los índices se creen correctamente.
Típicamente core los índices se ven afectados ya que la configuración de reintentos se define en un módulo externo, mientras que los índices de la aplicación ya tienen la configuración correcta.
Habilitando el función de reintento del lado del servidor se recomienda encarecidamente en CosmosDB. Si por alguna razón necesita mantener esta función desactivada, puede que deba aumentar el valor de ipf.mongodb.max-retry configuración para evitar errores de límite de tasa que fallen sus operaciones de base de datos.
|