1 min read

DuckDB-Wasm が OPFS に対応した

DuckDB-Wasm が OPFS をデータベース保存先として指定できるようになった。これによりデータがブラウザに永続化され、ブラウザを閉じてもデータを残せるようになった。

Add OPFS (Origin Private File System) Support by e1arikawa · Pull Request #1856 · duckdb/duckdb-wasm

これによりブラウザ側の統計情報を永続化でき、さらにブラウザ側で集計した情報を Parquet にしてサーバにアップロードするといった仕組みを取ることができたりもする。

WebRTC 統計情報の例

例えば WebRTC ではクライアント側で多くの統計情報を取得することができる。

Identifiers for WebRTC's Statistics API

ただ、この情報は今はサーバに一定期間 (60-120 秒単位) で送るというのが一般的だ。しかし、そもそも WebRTC はリアルタイムコミュニケーション技術のため、5 秒間隔で取得しておきたいと思ったときに、クライアントから大量の JSON を頻繁にサーバへ送信するわけにはいかない。

そこで DuckDB-Wasm (OPFS) がマッチする。WebRTC の統計情報をサーバーへ送らず、全てブラウザ側で保存しておき、どこかのタイミングでアップロードして貰うとかができるようになった。一度ブラウザを閉じた後でも問題ない。

また、DuckDB-Wasm では集計もクライアントで完結するのも魅力。これによりサーバ側の集計負荷を下げることができる。

DuckDB-Wasm (OPFS) は今まで実現できなかった事を実現できる素晴らしい仕組みだ。ぜひ使ってみてほしい。

DuckDB-Wasm (OPFS) メモ