Simon Willisonは2026年8月9日(現地時間)、自身のWeblogでSQLiteデータベースにおけるテキストのリビジョン履歴効率的な保存方法に関する研究成果として、二つの圧縮プロトタイプ「WholeBlobHistoryStore」と「ChunkedHistoryStore」を発表した。この提案は、過去の全てのバージョンをJSON配列としてまとめ、zlibまたはzstd圧縮を適用することで、データ重複による容量増大を大幅に削減することを目指す。
リレーショナルデータベースにおけるリビジョン履歴の保存に関心を持つSimon Willisonは、既存の手法が長いドキュメントの編集履歴において、各編集でデータサイズが著しく増大するという課題を指摘した。この課題に対し、彼はテキストの全履歴を単一のJSON配列に格納し、その全体をzlibまたはzstdで圧縮するという新しいアイデアを提唱した。
Willison氏は、ChatGPTのGPT‑Live音声モードでこのプロトタイプについて議論した後、GPT-5.6 Sol Proを用いてPythonでの実験的なプロトタイプを構築した。このアプローチにより、1,000回のシミュレーション編集を経て生成された20.4 MBの生のリビジョンテキストが、Zstandardで圧縮されたJSON配列としては80.3 KBにまで削減されることが確認された。
さらに、Willison氏は、毎回の編集時に配列全体を解凍・再圧縮するオーバーヘッドを避けるための最適化も提示している。GPT-5.6 Sol Proは、履歴を複数の行に分割し、それぞれ最大128リビジョンまたは3MBの非圧縮JSONを含むようにすることを提案した。提案されたプロトタイプには、編集ごとに1つの圧縮された履歴BLOBを書き換えるWholeBlobHistoryStoreと、長い履歴に対してスケーリングを改善するために圧縮されたチャンクを「封印」するChunkedHistoryStoreの二つがある。両プロトタイプは、過去のテキストとタイムスタンプを保持し、デフォルトで変更のない置き換えをスキップし、BEGIN IMMEDIATEを使用してライターを直列化し、アトミックな更新を保証する。
参考: Simon Willison’s Weblog — 2026年8月10日 07:05 (JST)
原文ハイライト"storing revision histories in relational databases"