要約

  • 1996年、Duane WesselsはHarvest Cache Daemonの商用化前の最終版から分岐し、独立したコードをSquidと命名して、7月に1.0.0を公開した。
  • 初期のSquidの変更には、条件付きHTTPリクエスト、HTTPSオブジェクト、サービスを続けながらのディスクキャッシュ再構築が含まれ、運用保守の継続が表れている。

研究プロジェクトが終わっても、その道具がリクエストを処理し続けることはある。1996年のHarvestのWebキャッシュが直面したのは、まさにその現実だった。Harvestはオブジェクトキャッシュを含む複数の機能を開発していたが、プロジェクトのメンバーの一部は産業界へ移り、別のNSF資金によるキャッシュ研究が始まっていた。Harvestに携わったDuane Wesselsは、その展開と研究に使える公開ソフトウェアを必要としていた。後年の技術的な回顧によると、彼は商用化前のHarvest最終版を基に改良を加え、商用化された別の派生版と区別するため、分岐をSquidと名付けた。

この分岐には明確な運用目的があった。キャッシュは利用者と遠隔のWebサーバーの間に置かれ、人気のあるデータのコピーを保存する。再度の要求をより近い場所から返すためだ。Harvestはキャッシュの階層化にも対応していた。需要は研究室内に限られなかった。ニュージーランドでの導入を扱った1996年の論文によると、Harvest Cacheは1995年10月に本番運用に入り、翌年2月には1台のサーバーが同国と世界を結ぶインターネット通信量の約5%に相当する量を処理したという。これは特定地域の運用者による推定値であり、世界的な導入規模を示すものではない。

Squidの最初の版は、アーカイブの名前だけを付け替えたものではない。1996年4月19日付の1.0 beta変更記録は、基盤を Harvest cached-1.4.pl3 と明記し、If-Modified-Since リクエスト、SSLオブジェクト、そしてキャッシュがリクエストを処理する間にディスク領域をバックグラウンドで再構築する機能の追加を記録している。保存済みオブジェクトが更新されたかを確かめ、より多様な接続を扱い、保守中もサービスを止めない。いずれもプロキシを運用する際の課題に直結する。公式の1.0.0は同年7月に公開された。

Wesselsの後年の説明には、その後1年間に寄せられたコード、パッチ、機能要望、エラー報告が記されている。変更記録をたどると、修正が各リリースに入り、SquidがHarvest由来の隣接キャッシュとの互換性にも対応し続けたことが分かる。1997年のRFC 2186は、隣接キャッシュ間で照会とHIT/MISSをすばやく交換するICPを記録し、その起源をHarvestの階層キャッシュ研究に結び付けている。分岐後にソフトウェアが変わっても、他のキャッシュが理解できる協調方式は残り得た。

Squidの始まりは、連続性を保つ一つの方法を示している。運用者がキャッシュを使い続けるために、Harvestというプロジェクト名がそのまま残る必要はなかった。保守担当者は知られたコードを基に別の枝を公開し、稼働中に見つかった要件に合わせて改良できた。ただし、それだけで長期サポートが保証されるわけではない。新しいプロジェクトにも人材、資金、互換性のある導入先が必要だった。研究成果は、定期的に更新されるソフトウェアへと移った。

出典