gzip形式のEXTRA_FIELDにdatのキーと圧縮後のサイズを入れ、ひたすら積み上げる。
そうすると、(.gzを扱うツールはcatしたデータを続けて扱うため)巨大なファイルにも見える。
で、キーとアーカイブ内の位置と圧縮前後のサイズ、および最終更新日を別ファイルに持つ。
(元のファイルから作成可能だけど速度のため)

追加は、フラグメントを避ける(過去にマップ時にOSが数秒間凍るほどの状況になった)ため
ある程度のまとまりを別途作ってから追加する機能だけ。
削除は、インデックスから削除する機能はあるけどremakeしない限りアーカイブには残る。
更新は、同じキーがあったら後半の方を優先することで、見かけ上だけ。
あ、直接HTTPで送れるようにとgzip互換にしたのに、圧縮後のイメージを取り出す機能つけてないや。

というのを以前作ったんだけど、興味のある人いるかな。