我正在编写一个 tcp 代理,它将 tcp 块缓存在 berkeley db 数据库中(见下图)。
当流通过源代理时,它会在继续到达目标代理之前被分割成块。
块存储在 Berkeley Db 数据库中。
下次流通过代理时,如果一个块已经在数据库中,则代理仅将其引用发送到将重放该部分流的目标代理。
数据库中每条记录的格式如下: Key(Adler32+MD5) Data
没有时间戳。
我主要担心的是数据库一直在增长。我需要不时清除旧记录。
我不清楚该怎么做。
我想在每条记录中引入一个时间戳,并在每次访问记录时对其进行更新,然后运行一个单独的进程,该进程将遍历数据库以删除“旧”记录。
我认为这不是一种优雅的方式。
有人有其他/更好的主意吗?
谢谢
来源---| tcp代理|----------| tcp 代理 |--- 目的地