ログの入出力をcsvからsqliteに移行

Issue #47 resolved
h rayflood created an issue

データが大量になってくると、報告書のデータ読み込みが非常に遅くなる。

アクセスの都度csvを丸ごと読み込むため、頻繁に更新されるcsvはメモリキャッシュがすぐ流れてしまう。

このため、データをsqliteに移行してアクセスを高速化する。ただしcsvへの出力は維持する。

起動時にsqliteがない場合は、プロキシを起動する前に既存のcsvをsqliteに移す処理を入れる。

設定の報告書に以下の項目を追加する。

  • キャッシュを利用する

    • デフォルト有効
    • sqliteにもデータを出力し、報告書はsqliteから読み込む
    • 既存のsqliteは削除しない
  • 次回起動時にキャッシュを初期化する

    • 次回起動時にsqliteを削除し、再作成してcsvの内容を書き込む
    • メイン画面表示前に、作成中ダイアログを表示し待機する
    • sqlite作成後は自動的に無効に再設定する
UseCache RebuildCache dbファイル 起動時の動作
false false なし csvのみ読み書き
false true なし csvのみ読み書き、RebuildCache=falseに変更
true false なし dbファイル作成、dbファイルで読み書き
true true なし dbファイル作成、dbファイルで読み書き、RebuildCache=falseに変更
false false あり csvのみ読み書き、dbファイルは温存
false true あり csvのみ読み書き、dbファイルは温存、RebuildCache=falseに変更
true false あり dbファイルで読み書き、dbファイルは温存
true true あり dbファイルで読み書き、dbファイルは再作成、RebuildCache=falseに変更

報告書からのjsonリクエストが日本語になっているので、sqliteのテーブル名に変更する。

Comments (10)

  1. Log in to comment