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).
{
"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. |