ローカル コンピューターで WAL (Write-Ahead Logging) を使用して SQLite 3 データベースを実行しているサード パーティ アプリケーションを扱っており、そのデータベースを別のデータベースにミラーリングしようとしています (読み取り専用、これは一方向のミラーリングです)。システム。課題は、私が別のプロセスで実行していることです。これは、やや複雑なようです。
データベースは作成され、通常のロック モードで開かれているため、別のプロセスから読み取るのに問題はありませんが、既存の実装を見つけるか、どこから始めればよいかについてのポインターを取得しようとしています。他の投稿に基づく私の理解では、標準の sqlite 更新フック (などsqlite3_update_hook
) はプロセス外では機能しません。
重要な問題は速度です。理想的には、更新が発生したらすぐに検出して送信を開始できるようにしたいと考えています。これは、ほとんどのポーリング オプションが問題外であることを意味しますが、たとえそうであったとしても、最新の変更をどのように検出しますか?
実際の WAL ファイル ( foo.db-wal
) と、そのメモリ マップド インデックス ファイル ( foo.db-shm
) です。これらの 2 つに必要な情報が含まれていることを願っています。
しかし、いくつかの既存のソリューションへのポインターがはるかに好ましいでしょう... :-)