Capítulo 18 Cumplimiento, almacenamiento & operación Admin: #pSystem

Motores de almacenamiento (SQLite, MS SQL Server, PostgreSQL 18), clustering & actualizador

nextxch separa limpiamente los metadatos estructurados y los índices de texto completo de los blobs MIME deduplicados por SHA-256 y comprimidos con Zstandard (-62 % de espacio en disco). Elija libremente entre tres motores SQL de primer nivel sin ninguna dependencia de Redis, Elasticsearch ni Kafka.

Consejo operativo y nota de arquitectura

Antes de aplicar cualquier actualización in situ, el actualizador integrado de 1 clic (#pSystem) verifica criptográficamente el resumen SHA-256 frente a SHA256SUMS.txt, conservando estrictamente appsettings.Production.json, los certificados TLS y los datos de los buzones.

Ejemplo de configuración de almacenamiento en appsettings.Production.json

Elija 'Sqlite' (nodo único), 'SqlServer' (Windows / Azure SQL) o 'Postgres' (clúster de alta disponibilidad en Linux).

Referencia / configuración
{
  "Storage": {
    "Provider": "SqlServer",
    "ConnectionString": "Server=sql01.intern;Database=nextxch;Integrated Security=True;TrustServerCertificate=True;",
    "BlobDirectory": "D:\\NextxchData\\blobs"
  }
}

Configuración, valores predeterminados y buenas prácticas

Ajuste / ubicación Descripción Valor predeterminado Buena práctica de producción
SQLite WAL (Storage:Provider = Sqlite) Base de datos integrada sin configuración que funciona en modo Write-Ahead-Logging (WAL), con búsqueda FTS5 integrada y sin demonios externos. Standard für Einzelserver Ideal para implementaciones de nodo único de hasta ~250 buzones activos en almacenamiento SSD/NVMe local (¡no coloque nunca los archivos WAL de SQLite en recursos compartidos de red SMB/NFS!).
Microsoft SQL Server (SqlServer) Motor Microsoft.Data.SqlClient de primera clase para SQL Server 2019-2025, Express, Docker y Azure SQL, con clustering mediante sp_getapplock y búsqueda sin complementos. READ_COMMITTED_SNAPSHOT auto La mejor opción para infraestructuras Windows Server: funciona de inmediato incluso con SQL Server Express, sin necesidad de complementos de búsqueda de texto completo del sistema operativo.
PostgreSQL 18 (Postgres) Motor de clúster activo-activo de alto rendimiento que aprovecha LISTEN/NOTIFY (< 2 ms de push), tablas UNLOGGED y pg_try_advisory_lock. Empfohlen für Linux-Cluster Motor de referencia para 500 a más de 100.000 buzones y clústeres Linux/Kubernetes Active-Active de varios nodos.
Deutsche Volltextsuche (alle drei Engines) Raíces alemanas (Snowball german2) en una columna separada o como prefijo de token en SQL Server, transcripción de diéresis (ae, oe, ue), palabras compuestas y un reintento ante errores tipográficos sobre el vocabulario del índice cuando no hay resultados. Ohne Zusatzdienst La medición con casos de prueba sintéticos en alemán está en el repositorio, en bench/ (exhaustividad media del 87 %). Las partes de palabra en medio de un compuesto no se encuentran; para ello haría falta un diccionario.
1-Klick-System-Updater (#pSystem) Consulta /api/releases/latest, verifica las sumas de comprobación SHA-256, prepara los binarios y reinicia sin interrupciones el servicio de Windows o la unidad systemd. SHA-256-geprüft Inicie actualizaciones con 1 clic directamente desde #pSystem (o mediante install.sh --update / asistente MSI), con reconexión automática en cuanto arranca la nueva versión.