ダウンロード可能な圧縮アーカイブ ファイル (zip ファイル)が多数ある Web サーバーがあります。これらのアーカイブがサーバーで使用するディスク フットプリントを大幅に削減したいと考えています。
重要な洞察は、これらのアーカイブは実際には同じ非圧縮コンテンツのわずかに異なるバージョンであるということです。これらの多くのアーカイブのいずれか 2 つを解凍し、結果の差分を実行した場合、差分はアーカイブの合計サイズの約 1% であることがわかると思います。
これらのアーカイブは実際には JAR ファイルですが、圧縮の詳細は (私が思うに) 無関係です。しかし、これは、これらのアーカイブを特定の圧縮形式で提供することは交渉の余地がないことを説明しています。それはサーバーの基本的な目的です。
それ自体は、これらのアーカイブのコンテンツ用に差分ストレージをインストールすることは問題ではなく、一連のアーカイブのディスク フットプリントを大幅に削減します。これを行うには、デルタ エンコーディングまたは共有を理解する圧縮ファイルシステムを使用する方法が多数あります(たとえば、 btrfsはブロック共有を理解するか、スナップショットを使用して強制することができます)。
問題は、これらのファイルから圧縮された zip を作成するにはどうすればよいかということです。私が持っているサーバーには計算能力がほとんどなく、ブロック共有コンテンツからオンザフライで JAR を再作成するには十分ではありません。
非圧縮レベルの共有コンテンツを圧縮レベルに公開するプログラムによる方法はありますか? 簡単に zip に変換できる増分圧縮形式 ?
その場で JAR を生成するキャッシング ソリューションを探す必要がありますか? これにより、最も要求の多い JAR を生成する際の計算上の負担が少なくとも軽減されます。
zip を非常に高速に生成できる特殊なハードウェアがありますが、私はむしろ出費を避けたいと考えています。また、サーバーへのリクエストの数が増えると、あまりスケーラブルなソリューションではありません。