tcp チャンクを berkeley db データベースにキャッシュする tcp プロキシを作成しています (下の図を参照)。
ストリームがソース プロキシを通過すると、宛先プロキシに進む前にチャンクにスライスされます。
チャンクは Berkeley Db データベースに保存されます。
次にストリームがプロキシを通過するとき、チャンクがすでにデータベースにある場合、プロキシはその参照のみを宛先プロキシに送信し、宛先プロキシはストリームのその部分を再生します。
データベースの各レコードは次の形式です: Key(Adler32+MD5) Data
タイムスタンプはありません。
私の主な関心事は、データベースが増え続けることです。たまに古いレコードをパージする必要があります。
私はそれを行う方法が明確ではありません。
各レコードにタイムスタンプを導入し、レコードにアクセスするたびに更新してから、データベースを反復処理して「古い」レコードを削除する別のプロセスを実行することを考えました。
エレガントな方法ではないと思います。
誰かが他の/より良いアイデアを持っていますか?
ありがとう
ソース ---| tcp プロキシ |----------| TCP プロキシ |--- 宛先