Capítulo 18 Conformidade, armazenamento & operação Admin: #pSystem

Mecanismos de armazenamento (SQLite, MS SQL Server, PostgreSQL 18), clustering & atualizador

O nextxch separa de forma limpa os metadados estruturados e os índices de texto completo dos blobs MIME deduplicados por SHA-256 e compactados com Zstandard (-62% de uso de disco). Escolha livremente entre três mecanismos SQL de primeira classe, sem dependências de Redis, Elasticsearch ou Kafka.

Dica operacional & nota de arquitetura

Antes de aplicar qualquer atualização in-place, o 1-Click Updater integrado (#pSystem) verifica criptograficamente o digest SHA-256 em relação ao SHA256SUMS.txt, preservando rigorosamente o appsettings.Production.json, os certificados TLS e os dados das caixas de correio.

Exemplo de configuração de armazenamento em appsettings.Production.json

Escolha 'Sqlite' (nó único), 'SqlServer' (Windows / Azure SQL) ou 'Postgres' (cluster HA Linux).

Referência / configuração
{
  "Storage": {
    "Provider": "SqlServer",
    "ConnectionString": "Server=sql01.intern;Database=nextxch;Integrated Security=True;TrustServerCertificate=True;",
    "BlobDirectory": "D:\\NextxchData\\blobs"
  }
}

Configurações, valores padrão e boas práticas

Configuração / local Descrição Valor padrão Boa prática para produção
SQLite WAL (Storage:Provider = Sqlite) Banco de dados embutido sem configuração, operando em modo Write-Ahead-Logging (WAL), com busca FTS5 integrada e nenhum daemon externo. Standard für Einzelserver Ideal para implantações de nó único com até ~250 caixas de correio ativas em armazenamento SSD/NVMe local (nunca coloque arquivos SQLite WAL em compartilhamentos de rede SMB/NFS!).
Microsoft SQL Server (SqlServer) Mecanismo Microsoft.Data.SqlClient de primeira classe para SQL Server 2019-2025, Express, Docker e Azure SQL, com clustering via sp_getapplock e busca sem complementos. READ_COMMITTED_SNAPSHOT auto Melhor escolha para infraestrutura Windows Server: funciona de imediato até no SQL Server Express, sem exigir complementos de pesquisa de texto completo do sistema operacional.
PostgreSQL 18 (Postgres) Mecanismo de cluster ativo-ativo de alto desempenho com LISTEN/NOTIFY (push < 2 ms), tabelas UNLOGGED e pg_try_advisory_lock. Empfohlen für Linux-Cluster Mecanismo de referência para 500 a mais de 100.000 caixas de correio e clusters Linux/Kubernetes Active-Active com vários nós.
Deutsche Volltextsuche (alle drei Engines) Radicais alemães (Snowball german2) em uma coluna separada ou como prefixo de token no SQL Server, transcrição de tremas (ae, oe, ue), palavras compostas e uma nova tentativa com correção de digitação sobre o vocabulário do índice quando não há resultados. Ohne Zusatzdienst A medição com casos de teste sintéticos em alemão está no repositório em bench/ (recall médio de 87%). Partes de palavras no meio de uma palavra composta não são encontradas; isso exigiria um dicionário.
1-Klick-System-Updater (#pSystem) Verifica /api/releases/latest, confere os checksums SHA-256, prepara os binários e reinicia o serviço do Windows ou a unidade systemd sem interrupções. SHA-256-geprüft Inicie atualizações com 1 clique diretamente em #pSystem (ou via install.sh --update / assistente MSI) com reconexão automática assim que a nova versão inicializar.