415.tech
シリコンバレー発、AIとテックの最前線
MicrologicsのSQLite本番環境ガイド、ベンチマークなしで全pragma設定を公開

MicrologicsのSQLite本番環境ガイド、ベンチマークなしで全pragma設定を公開

Micrologicsは、コピー可能なpragmaのチェックリストを通じて、SQLiteをプライマリストアとして活用する方法を提示している。fsyncコストを削減するための「journal_mode = WAL」と「synchronous = NORMAL」、単一ライターの制約下でのデッドロックを回避するための「busy_timeout = 5000」および「BEGIN IMMEDIATE」、そして64MBのページキャッシュを確保する「cache_size = -64000」といった設定が含まれる。1ミリ秒未満の読み取り速度、数百件の同時リクエスト、1日あたり数百万件のクエリといった主張が添えられているが、レイテンシやスループットの測定結果はなく、Postgresとの比較も示されていない。クライアントサーバー型データベースへのネットワークホップが主要なコストとなる単一ノードサーバーであれば、この設定をすぐにコピーして利用できる。ただし、パフォーマンスの上限はワークロードごとに測定する必要がある。

出典: micrologics.org

Xでポストメール

同じサーバー上でアプリケーションプロセス内でSQLiteを直接実行することで、ネットワークのオーバーヘッドを完全に排除する。

Micrologics

なぜ重要か

  • → Local storageはネットワークのラウンドトリップをなくす — 従来のデータベースにおける主要なボトルネックだ。
  • → Single-writer制約およびSQLITE_BUSYエラーは、明示的な並行処理の対応を必要とする。
  • → レイテンシーの測定値は提供されていない。主張はワークロードごとの検証が必要だ。
SQLiteの静かな天井