第 18 章 コンプライアンス、ストレージ & 運用 管理: #pSystem

ストレージ エンジン (SQLite、MS SQL Server、PostgreSQL 18)、クラスタリング & アップデーター

nextxch は、構造化メタデータと全文インデックスを、SHA-256 で重複排除され Zstandard で圧縮された MIME BLOB (ディスク使用量 -62%) から明確に分離します。Redis、Elasticsearch、Kafka への依存なしに、3 つのファースト クラス SQL エンジンから自由に選択できます。

運用のヒントとアーキテクチャに関する注記

インプレース更新を適用する前に、組み込みのワンクリック アップデーター (#pSystem) が SHA-256 ダイジェストを SHA256SUMS.txt と暗号学的に照合します。その際、appsettings.Production.json、TLS 証明書、メールボックス データは厳密に保持されます。

appsettings.Production.json のストレージ構成例

'Sqlite' (単一ノード)、'SqlServer' (Windows / Azure SQL)、または 'Postgres' (Linux HA クラスター) を選択します。

リファレンス / 構成
{
  "Storage": {
    "Provider": "SqlServer",
    "ConnectionString": "Server=sql01.intern;Database=nextxch;Integrated Security=True;TrustServerCertificate=True;",
    "BlobDirectory": "D:\\NextxchData\\blobs"
  }
}

設定、既定値 & ベスト プラクティス

設定 / 場所 説明 既定値 本番環境のベスト プラクティス
SQLite WAL (Storage:Provider = Sqlite) 設定不要の組み込みデータベース。Write-Ahead-Logging (WAL) モードで動作し、FTS5 検索を内蔵、外部デーモンは不要です。 Standard für Einzelserver ローカル SSD/NVMe ストレージ上で最大約 250 のアクティブ メールボックスまでのシングル ノード展開に最適です (SQLite WAL ファイルは決してネットワーク上の SMB/NFS 共有に置かないでください!)。
Microsoft SQL Server (SqlServer) SQL Server 2019-2025、Express、Docker、Azure SQL に対応する第一級の Microsoft.Data.SqlClient エンジン。sp_getapplock によるクラスタリングとアドオン不要の検索を備えています。 READ_COMMITTED_SNAPSHOT auto Windows Server インフラストラクチャに最適: OS の全文検索アドオンを必要とせず、SQL Server Express でもそのまま動作します。
PostgreSQL 18 (Postgres) LISTEN/NOTIFY (< 2 ms のプッシュ)、UNLOGGED テーブル、pg_try_advisory_lock を活用した高スループットのアクティブ/アクティブ クラスター エンジン。 Empfohlen für Linux-Cluster 500 から 100,000 以上のメールボックスと、マルチノードのアクティブ / アクティブ Linux/Kubernetes クラスター向けのリファレンス エンジン。
Deutsche Volltextsuche (alle drei Engines) ドイツ語の語幹(Snowball german2)を別の列に、または SQL Server ではトークンのプレフィックスとして格納。ウムラウトの転写(ae、oe、ue)、複合語、ヒットがない場合はインデックスの語彙を使ったタイプミスの再試行。 Ohne Zusatzdienst 合成したドイツ語テストケースによる測定は、リポジトリの bench/ にあります(平均再現率 87%)。複合語の途中にある語の部分は検索されません。それには辞書が必要になります。
1-Klick-System-Updater (#pSystem) /api/releases/latest を確認し、SHA-256 チェックサムを検証し、バイナリを配置して、Windows サービスまたは systemd ユニットをシームレスに再起動します。 SHA-256-geprüft #pSystem から直接 (または install.sh --update / MSI ウィザードで) ワンクリック更新を実行でき、新しいバージョンの起動後に自動的に再接続します。